| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Some naming questions:
- for "extend" we could also think of: "expand", "union", "add"
- same for "clamp": "crop", "intersect"
- same for "contains": "isInside", "intersect"
=> ah "intersect" is conflicting, so that eliminates this one !
|
|
|
|
| |
Complete unit tests wrt previous commits.
|
| |
|
|
|
|
|
| |
to all classes of the Geometry module. By smart I mean that if current
type == new type, then it returns a const reference to *this => zero overhead
|
| |
|
| |
|
|
|
|
| |
Just a thought: what about ParamLine instead of the verbose ParametrizedLine ?
|
|
|
|
|
|
|
|
|
|
| |
* remove the automatic resizing feature of operator =
* add function Matrix::set() to be used when the previous
behavior is wanted
* the default constructor of dynamic-size matrices now
creates a "null" matrix (data=0, rows = cols = 0)
instead of a 1x1 matrix
* fix UnixX typos ;)
|
| |
|
|
|
|
|
| |
- remove some useless stuff => let's focus on a single sparse matrix format
- finalize the new RandomSetter
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as described on the wiki (one map per N column)
Here's some bench results for the 4 currently supported map impl:
std::map => 18.3385 (581 MB)
gnu::hash_map => 6.52574 (555 MB)
google::dense => 2.87982 (315 MB)
google::sparse => 15.7441 (165 MB)
This is the time is second (and memory consumption) to insert/lookup
10 million of coeffs with random coords inside a 10000^2 matrix,
with one map per packet of 64 columns => google::dense really rocks !
Note I use for the key value the index of the column in the packet (between 0 and 63)
times the number of rows and I used the default hash function.... so maybe there is
room for improvement here....
|
|
|
|
|
| |
for both backends.
* extended a bit the sparse unit tests
|
| |
|
|
|
|
| |
* add unit tests for sparse cholesky
|
| |
|
|
|
|
|
|
|
|
|
|
| |
solver from suitesparse (as cholmod). It seems to be even faster
than SuperLU and it was much simpler to interface ! Well,
the factorization is faster, but for the solve part, SuperLU is
quite faster. On the other hand the solve part represents only a
fraction of the whole procedure. Moreover, I bench random matrices
that does not represents real cases, and I'm not sure at all
I use both libraries with their best settings !
|
| |
|
|
|
|
|
| |
using SuperLU. Calling SuperLU was very painful, but it was worth it,
it seems to be damn fast !
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rename Cholesky to LLT
* rename CholeskyWithoutSquareRoot to LDLT
* rename MatrixBase::cholesky() to llt()
* rename MatrixBase::choleskyNoSqrt() to ldlt()
* make {LLT,LDLT}::solve() API consistent with other modules
Note that we are going to keep a source compatibility untill the next beta release.
E.g., the "old" Cholesky* classes, etc are still available for some time.
To be clear, Eigen beta2 should be (hopefully) source compatible with beta1,
and so beta2 will contain all the deprecated API of beta1. Those features marked
as deprecated will be removed in beta3 (or in the final 2.0 if there is no beta 3 !).
Also includes various updated in sparse Cholesky.
|
|
|
|
|
|
| |
=> row-major rhs are now evaluated to a column-major
temporary before the computations.
Add solveInPlace in Cholesky*
|
| |
|
| |
|
| |
|
|
|
|
| |
template parameter for matrices.
|
|
|
|
|
|
| |
const (maybe completely
useless but at least doesn't hurt)
|
|
|
|
| |
now the backends are well separated from the default impl, etc.
|
|
|
|
| |
CHOLMOD backend.
|
| |
|
|
|
|
|
| |
* bidirectionnal mapping
* full cholesky factorization
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* several fixes (transpose, matrix product, etc...)
* Added a basic cholesky factorization
* Added a low level hybrid dense/sparse vector class
to help writing code involving intensive read/write
in a fixed vector. It is currently used to implement
the matrix product itself as well as in the Cholesky
factorization.
|
|
|
|
|
|
| |
However, for matrices larger than 5, it seems there is constantly a quite large error for a very
few coefficients. I don't what's going on, but that's certainely not due to numerical issues only.
(also note that the test with the pseudo eigenvectors fails the same way)
|
|
|
|
|
|
|
|
| |
* eigenvectors => pseudoEigenvectors
* added pseudoEigenvalueMatrix
* clear the documentation
* added respective unit test
Still missing: a proper eigenvectors() function.
|
| |
|
| |
|
|
|
|
| |
* documentation improvements, especially in quickstart guide
|
|
|
|
| |
issue with custom types
|
|
|
|
|
|
| |
registers)
* extend the documentation on "extending Eigen"
|
|
|
|
| |
.finished())
|
|
|
|
|
|
| |
based on the former.
* opengl_demo: makes IcoSphere better (vertices are instanciated only once) and
removed the generation of a big geometry for the fancy spheres...
|
| |
|
| |
|
| |
|
|
|
|
| |
stable as LU with full pivoting)
|
| |
|