aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Jacobi
Commit message (Collapse)AuthorAge
* rename PlanarRotation -> JacobiRotationGravatar Benoit Jacob2010-10-19
|
* Jacobi improvements:Gravatar Benoit Jacob2010-10-12
| | | | | | | | * add fixed-size vectorized path * add missing restrict keywords * use innerStride() * allow vectorization even if innerStride()>1, if PacketSize==1 (think of the case of rows of std::complex<double>)
* fix the Jacobi bug, expand unit testGravatar Benoit Jacob2010-10-12
|
* port Jacobi to new ei_pset1/ei_pload APIGravatar Gael Guennebaud2010-07-19
|
* add support for vectorized conjugated productsGravatar Gael Guennebaud2010-07-06
|
* email changeGravatar Gael Guennebaud2010-06-24
|
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* merge and add start/end to Eigen2SupportGravatar Gael Guennebaud2010-01-05
|\
| * * Fix bug #79: ei_alignmentOffset was assuming that ptr is multiple ofGravatar Benoit Jacob2010-01-02
| | | | | | | | | | | | | | sizeof(Scalar), and that assumption breaks with double on linux x86-32. * Rename ei_alignmentOffset to ei_first_aligned * Rewrite its documentation and part of its body * The variant taking a MatrixBase doesn't need a separate size argument.
* | add a DenseBase class for MAtrixBase and ArrayBase and more code factorisationGravatar Gael Guennebaud2009-12-04
|/
* Fix LaTeX error in doxygen comment.Gravatar Jitse Niesen2009-09-08
|
* bug fix in novel makeGivens for realGravatar Gael Guennebaud2009-09-04
|
* implement the continuous generation algorithm of Givens rotations by ↵Gravatar Gael Guennebaud2009-09-03
| | | | Anderson (2000)
* add examples for makeJacobi and makeGivensGravatar Gael Guennebaud2009-09-03
|
* fix #51 (bad use of std::complex::real)Gravatar Gael Guennebaud2009-09-02
|
* * rename JacobiRotation => PlanarRotationGravatar Gael Guennebaud2009-09-02
| | | | | * move the makeJacobi and make_givens_* to PlanarRotation * rename applyJacobi* => apply*
* 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
* Fix comment which may cause latex to hang when generating docsGravatar Jitse Niesen2009-08-24
|
* fix issue #43Gravatar Gael Guennebaud2009-08-24
|
* hm, forgot to conjugate the arguments in applyJacobiOnTheLeftGravatar Gael Guennebaud2009-08-24
|
* fix apply Jacobi for complexes and add documentation for some *Jacobi* functionsGravatar Gael Guennebaud2009-08-23
|
* optimize "apply Jacobi" for small sizes, and move it to Jacobi.hGravatar Gael Guennebaud2009-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
* add an optimized "apply in place a rotation in the plane",Gravatar Gael Guennebaud2009-08-13
| | | | | and make Jacobi and SelfAdjointEigenSolver use it => ~ x1.75 speedup for JacobiSVD and x2 for SelfAdjointEigenSolver
* do without an empirical homemade formula that i wasn't comfortable about...Gravatar Benoit Jacob2009-08-12
| | | | turns out it's not needed anymore and removing it seems to only increase the 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.
* * add Jacobi transformationsGravatar Benoit Jacob2009-08-09
* add Jacobi (Hestenes) SVD decomposition for square matrices * add function for trivial Householder