aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Jacobi
Commit message (Collapse)AuthorAge
* Improve mixing of complex and real in the vectorized path of ↵Gravatar Gael Guennebaud2017-04-14
| | | | apply_rotation_in_the_plane
* bug #1167: simplify installation of header files using cmake's ↵Gravatar Gael Guennebaud2016-08-29
| | | | install(DIRECTORY ...) command.
* Consider denormals as zero in makeJacobi and 2x2 SVD.Gravatar Gael Guennebaud2016-07-12
| | | | This also fix serious issues with x387 for which values can be much smaller than the smallest denormal!
* Generalize first_aligned to take the requested alignment as a template ↵Gravatar Gael Guennebaud2015-08-06
| | | | parameter, and add a first_default_aligned variante calling first_aligned with the requirement of the largest packet for the given scalar type.
* First part of a big refactoring of alignment control to enable the handling ↵Gravatar Gael Guennebaud2015-08-06
| | | | | | | | | of arbitrarily aligned buffers. It includes: - AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes. - Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>. - The Aligned enum is now deprecated. It is now an alias for Aligned16. - Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
* Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
|
* Fix dox for namespacesGravatar Chen-Pang He2014-07-05
|
* Fix bug #314: move remaining math functions from internal to numext namespaceGravatar Gael Guennebaud2013-06-10
|
* bug #482: pass scalar arguments by const references. Still remains a few ↵Gravatar Gael Guennebaud2013-02-25
| | | | cases that might affect the ABI (see the bug entry)
* Fix bug #314:Gravatar Gael Guennebaud2012-11-06
| | | | | - remove most of the metaprogramming kung fu in MathFunctions.h (only keep functions that differs from the std) - remove the overloads for array expression that were in the std namespace
* do not apply plane rotation when it is exactly the identityGravatar Gael Guennebaud2012-07-24
|
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* workaround ICC compilation error with -strict-ansiGravatar Gael Guennebaud2012-01-25
|
* clean a bit previous patch (ctor vs static_cast and a few bits)Gravatar Gael Guennebaud2011-05-23
|
* fix implicit scalar conversions (needed to support fancy scalar types, see ↵Gravatar David H. Bailey2011-05-23
| | | | bug #276)
* Initial fixes for bug #85.Gravatar Hauke Heibel2010-10-25
| | | | | | | Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const. Changed boolean type 'ret' member to 'value'. Changed 'ret' members refering to types to 'type'. Adapted all code occurences.
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* 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