aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SVD
Commit message (Collapse)AuthorAge
* bugfixes for ICC (compilation and runtime)Gravatar Gael Guennebaud2009-09-15
|
* big reorganization in JacobiSVD:Gravatar Benoit Jacob2009-09-03
| | | | | | | - R-SVD preconditioning now done with meta selectors to avoid compiling useless code - SVD options now honored, with options to hint "at least as many rows as cols" etc... - fix compilation in bad cases (rectangular and fixed-size) - the check for termination is now done on the fly, no more goto (should have done that earlier!)
* * rename JacobiRotation => PlanarRotationGravatar Gael Guennebaud2009-09-02
| | | | | * move the makeJacobi and make_givens_* to PlanarRotation * rename applyJacobi* => apply*
* mergeGravatar Benoit Jacob2009-09-02
|\
* | JacobiSVD: implement general R-SVD using full-pivoting QR, so we now support ↵Gravatar Benoit Jacob2009-09-02
| | | | | | | | any rectangular matrix size by reducing to the smaller of the two dimensions (which is also an optimization)
| * added missing JacobiRotation's ...Gravatar Hauke Heibel2009-09-01
|/
* add a JacobiRotation class wrapping the cosine-sine pair withGravatar Gael Guennebaud2009-09-01
| | | | some convenient features (transpose, adjoint, product)
* * JacobiSVD:Gravatar Benoit Jacob2009-08-31
| | | | | | | | | | | | - support complex numbers - big rewrite of the 2x2 kernel, much more robust * Jacobi: - fix weirdness in initial design, e.g. applyJacobiOnTheRight actually did the inverse transformation - fully support complex numbers - fix logic to decide whether to vectorize - remove several clumsy methods fix for complex numbers
* in all decs, make the compute() methods return *thisGravatar Benoit Jacob2009-08-15
| | | | (implements feature request #18)
* make SVD reuses applyJacobiGravatar Gael Guennebaud2009-08-16
|
* svd: sort in decreasing order, remove unused codeGravatar Benoit Jacob2009-08-15
|
* machine_epsilon -> epsilon as wrapper around numeric_traitsGravatar Benoit Jacob2009-08-14
|
* * remove EIGEN_DONT_INLINE that harm performance for small sizesGravatar Benoit Jacob2009-08-13
| | | | | | | * normalize left Jacobi rotations to avoid having to swap rows * set precision to 2*machine_epsilon instead of machine_epsilon, we lose 1 bit of precision but gain between 10% and 100% speed, plus reduce the risk that some day we hit a bad matrix where it's impossible to approach machine precision
* make jacobi SVD more robust after experimenting with very nasty matrices...Gravatar Benoit Jacob2009-08-12
| | | | | | | it turns out to be better to repeat the jacobi steps on a given (p,q) pair until it is diagonal to machine precision, before going to the next (p,q) pair. it's also an optimization as experiments show that in a majority of cases this allows to find out that the (p,q) pair is already diagonal to machine precision.
* finally, the good approach was two-sided Jacobi. Indeed, it allowsGravatar Benoit Jacob2009-08-12
| | | | | | | | | | to guarantee the precision of the output, which is very valuable. Here, we guarantee that the diagonal matrix returned by the SVD is actually diagonal, to machine precision. Performance isn't bad at all at 50% of the current householder SVD performance for a 200x200 matrix (no vectorization) and we have lots of room for improvement.
* don't depend on uninitialized valueGravatar Benoit Jacob2009-08-09
|
* * add Jacobi transformationsGravatar Benoit Jacob2009-08-09
| | | | | * add Jacobi (Hestenes) SVD decomposition for square matrices * add function for trivial Householder
* fix bug in sorting of singular valuesGravatar Benoit Jacob2009-08-09
|
* make the dot product linear in the second variable, not the first variableGravatar Benoit Jacob2009-08-03
|
* bugfix in SVDGravatar Gael Guennebaud2009-07-20
|
* slight change in the comparison to -1Gravatar Gael Guennebaud2009-07-10
|
* include the fixes of the third editionGravatar Gael Guennebaud2009-07-06
|
* quick reimplementation of SVD from the numeral recipes book:Gravatar Gael Guennebaud2009-07-06
| | | | | | this is still not Eigen style code but at least it works for n>m and it is more accurate than the JAMA based version. (I needed it now, this is why I did that)
* fix #20: SVD::solve() now resize the resultGravatar Gael Guennebaud2009-07-04
|
* mergeGravatar Benoit Jacob2009-05-22
|\
| * remove sentence "Eigen itself is part of the KDE project."Gravatar Benoit Jacob2009-05-22
| | | | | | | | it never made very precise sense. but now does it still make any?
* | fix typoGravatar Thomas Capricelli2009-05-22
| |
* | QR and SVD decomposition interface unification.Gravatar Hauke Heibel2009-05-22
|/ | | | | | Added default ctor and public compute method as well as safe-guards against uninitialized usage. Added unit tests for the safe-guards.
* Add COMPONENT DevelGravatar Laurent Montel2009-02-23
|
* add computeRotationScaling and computeScalingRotation in SVDGravatar Benoit Jacob2009-01-22
| | | | | | add convenience functions in Transform reimplement Transform::rotation() to use that add unit-test
* add polar decomposition on both sides, in SVD, with testGravatar Benoit Jacob2009-01-22
|
* more Scalar conversions fixesGravatar Gael Guennebaud2009-01-07
|
* * suppressed some minor warningsGravatar Kenneth Frank Riddile2009-01-06
|
* * fix in IO.h, a useless copy was made because of assignment fromGravatar Benoit Jacob2008-12-18
| | | | | | | | | | | | | | | 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.
* * replace postfix ++ by prefix ++ wherever that makes sense in Eigen/Gravatar Benoit Jacob2008-12-17
| | | | | * fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated" warning which I haven't looked much into
* doc: add a "non stable" warning for parts which are not partGravatar Gael Guennebaud2008-11-22
| | | | of the stable API yet and a couple of other minor doc updates...
* Big API change in Cholesky module:Gravatar Gael Guennebaud2008-10-13
| | | | | | | | | | | | | | | | * 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.
* Solve the issue found by Timothy in solveTriangular:Gravatar Gael Guennebaud2008-10-13
| | | | | | => row-major rhs are now evaluated to a column-major temporary before the computations. Add solveInPlace in Cholesky*
* fix stupid numerical stability issue in SVD::solve (though it is not yet as ↵Gravatar Gael Guennebaud2008-09-04
| | | | stable as LU with full pivoting)
* trivial compilation fix in SVDGravatar Gael Guennebaud2008-09-03
|
* Added a SVD module:Gravatar Gael Guennebaud2008-08-19
- the decompostion code has been adfapted from JAMA - handles non square matrices of size MxN with M>=N - does not work for complex matrices - includes a solver where the parts corresponding to zero singular values are set to zero