| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
* fixes for mistakes (especially in the cast() methods in Geometry) revealed by the new "mixing types" test
* dox love, including a section on coeff access in core and an overview in geometry
|
|
|
|
| |
* finally get ei_add_test right
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Derived to MatrixBase.
* the optimization of eval() for Matrix now consists in a partial
specialization of ei_eval, which returns a reference type for Matrix.
No overriding of eval() in Matrix anymore. Consequence: careful,
ei_eval is no longer guaranteed to give a plain matrix type!
For that, use ei_plain_matrix_type, or the PlainMatrixType typedef.
* so lots of changes to adapt to that everywhere. Hope this doesn't
break (too much) MSVC compilation.
* add code examples for the new image() stuff.
* lower a bit the precision for floats in the unit tests as
we were already doing some workarounds in inverse.cpp and we got some
failed tests.
|
| |
|
|
|
|
|
| |
* fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated"
warning which I haven't looked much into
|
|
|
|
| |
of the stable API yet and a couple of other minor doc updates...
|
|
|
|
|
|
| |
* fix a very old bug in EigenSolver that I had completely forgotten
(thanks to Timothy to refresh my mind)
* fix doc of Matrix::Map
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times
with almost zero failures.
|
|
|
|
| |
still fail at runtime in ei_aligned_free() (even without vectorization).
|
|
|
|
|
|
|
|
|
| |
- 33 new snippets
- unfuck doxygen output in Cwise (issues with function macros)
- more see-also links from outside, making Cwise more discoverable
* rename matrixNorm() to operatorNorm(). There are many matrix norms
(the L2 is another one) but only one is called the operator norm.
Risk of confusion with keyword operator is not too scary after all.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
pivoting for better numerical stability. For now the only application is
determinant.
* New determinant unit-test.
* Disable most of Swap.h for now as it makes LU fail (mysterious).
Anyway Swap needs a big overhaul as proposed on IRC.
* Remnants of old class Inverse removed.
* Some warnings fixed.
|
|
|
|
|
| |
fix positive definite test in Cholesky.
remove #include <cstring> in CoreDeclaration.
|
|
|
|
|
|
|
|
| |
* faster matrix-matrix and matrix-vector products (especially for not aligned cases)
* faster tridiagonalization (make it using our matrix-vector impl.)
Others:
* fix Flags of Map
* split the test_product to two smaller ones
|
|
|
|
|
|
|
|
| |
- added explicit enum to int conversion where needed
- if a function is not defined as declared and the return type is "tricky"
then the type must be typedefined somewhere. A "tricky return type" can be:
* a template class with a default parameter which depends on another template parameter
* a nested template class, or type of a nested template class
|
|
|
|
|
|
| |
Documentation:
* add an overview for each module.
* add an example for .all() and Cwise::operator<
|
|
|
|
|
|
| |
Renamed "MatrixBase::extract() const" to "MatrixBase::part() const"
* Renamed static functions identity, zero, ones, random with an upper case
first letter: Identity, Zero, Ones and Random.
|
| |
|
|
|
|
|
| |
- fix compilation in product.cpp with std::complex
- fix bug in MatrixBase::operator!=
|
|
|
|
|
|
|
|
|
|
| |
to optimize matrix-diag and diag-matrix products without
making Product over complicated.
* compilation fixes in Tridiagonalization and HessenbergDecomposition
in the case of 2x2 matrices.
* added an Orientation2D small class with similar interface than Quaternion
(used by Transform to handle 2D and 3D orientations seamlessly)
* added a couple of features in Transform.
|
|
|
|
|
|
| |
(as new members to SelfAdjointEigenSolver)
The QR module now depends on Cholesky.
* Fix Transpose to correctly preserve the *TriangularBit.
|
|
|
|
| |
To try it with the unit tests set the cmake variable TEST_LIB to ON.
|
|
|
|
|
|
|
| |
This is the first step towards a non-selfadjoint eigen solver.
Notes:
- We might consider merging Tridiagonalization and Hessenberg toghether ?
- Or we could factorize some code into a Householder class (could also be shared with QR)
|
|
|
|
|
|
| |
- works for complex
- allows direct access to the matrix R
* removed the scale by the matrix dimensions in MatrixBase::isMuchSmallerThan(scalar)
|
| |
|
| |
|
|
|
|
| |
(useful for plane fitting, and covariance analysis of 3D data)
|
|
|
|
| |
(see notes in Core/util/StaticAssert.h for details)
|
| |
|
|
|
|
|
| |
(haven't tried them yet)
* applied the meta selector rule to MatrixBase::swap()
|
|
|
|
|
| |
initialized enum values showing the last word the initializer instead of the actual
enum value's name; add some more docs.
|
|
|
|
|
| |
However the eigen vectors are not correct yet, but I really cannot find the
problem.
|
|
|
|
| |
cwiseAbs()
|
|
|
|
|
|
| |
- add MatrixBase::matrixNorm(); in the non-selfadjoint case, we reduce to the
selfadjoint case by using the "C*-identity" a.k.a.
norm of x = sqrt(norm of x * x.adjoint())
|
|
|
|
|
|
|
|
|
| |
aborting
on an assert. Had to fix a stupid bug in Block -- very strange we hadn't hit it
before.
However the test still fails.
|
|
|
|
|
| |
which now supports selfadjoint matrix. The implementation follows
Golub's famous book.
|
|
|
|
|
|
|
|
|
| |
* added MatrixBase::real()
* added the ability to extract a selfadjoint matrix from the
lower or upper part of a matrix, e.g.:
m.extract<Upper|SelfAdjoint>()
will ignore the strict lower part and return a selfadjoint.
This is compatible with ZeroDiag and UnitDiag.
|
| |
|
|
|
|
|
| |
* added qr and eigensolver tests
* fix a compilation warning in Matrix copy constructor
|
|
|
|
|
|
|
|
|
|
| |
Triangular class
- full meta-unrolling in Part
- move inverseProduct() to MatrixBase
- compilation fix in ProductWIP: introduce a meta-selector to only do
direct access on types that support it.
- phase out the old Product, remove the WIP_DIRTY stuff.
- misc renaming and fixes
|