aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/QR
Commit message (Collapse)AuthorAge
* Enable CompleteOrthogonalDecomposition::pseudoInverse with non-square ↵Gravatar Gael Guennebaud2019-11-13
| | | | fixed-size matrices.
* Mask unused-parameter warnings, when building with NDEBUGGravatar Christoph Hertzberg2019-01-18
|
* PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD).Gravatar Patrick Peltzer2019-01-17
| | | | | | | | | | | | | This changeset also includes: * add HouseholderSequence::conjugateIf * define int as the StorageIndex type for all dense solvers * dedicated unit tests, including assertion checking * _check_solve_assertion(): this method can be implemented in derived solver classes to implement custom checks * CompleteOrthogonalDecompositions: add applyZOnTheLeftInPlace, fix scalar type in applyZAdjointOnTheLeftInPlace(), add missing assertions * Cholesky: add missing assertions * FullPivHouseholderQR: Corrected Scalar type in _solve_impl() * BDCSVD: Unambiguous return type for ternary operator * SVDBase: Corrected Scalar type in _solve_impl()
* update commentGravatar Gael Guennebaud2018-06-29
|
* bug #1493: Make representation of HouseholderSequence consistent and working ↵Gravatar Christoph Hertzberg2018-04-15
| | | | for complex numbers. Made corresponding unit test actually test that. Also simplify implementation of QR decompositions
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* bug #1403: more scalar conversions fixes in BDCSVDGravatar Gael Guennebaud2017-06-09
|
* bug #1403: fix implicit scalar type conversion.Gravatar Gael Guennebaud2017-06-09
|
* Fix unwanted Real to Scalar to Real conversions in column-pivoting QR.Gravatar Gael Guennebaud2017-04-14
|
* Deleted extra: EIGEN_DEVICE_FUNC: the QR and Cholesky code isn't ready to ↵Gravatar Benoit Steiner2017-02-28
| | | | run on GPU yet.
* Fix and workaround several doxygen issues/warningsGravatar Gael Guennebaud2017-01-04
|
* 1. Add explicit template to abs2 (resolves deduction for some arithmetic types)Gravatar Angelos Mantzaflaris2016-12-02
| | | | | | 2. Avoid signed-unsigned conversion in comparison (warning in case Scalar is unsigned) (grafted from 4086187e49760d4bde72750dfa20ae9451263417 )
* Fix compilation of qr.inverse() for column and full pivoting variants.Gravatar Gael Guennebaud2016-10-06
|
* bug #1266: remove CUDA guards on MatrixBase::<decomposition> definitions. ↵Gravatar Gael Guennebaud2016-09-06
| | | | (those used to break old nvcc versions that we propably don't care anymore)
* bug #1167: simplify installation of header files using cmake's ↵Gravatar Gael Guennebaud2016-08-29
| | | | install(DIRECTORY ...) command.
* bug #1265: remove outdated notesGravatar Gael Guennebaud2016-08-22
|
* Add brackets to block matrix and fixed some typosGravatar Christoph Hertzberg2016-07-27
|
* Clean references to MKL in LAPACKe support.Gravatar Gael Guennebaud2016-07-25
|
* Rename MKL filesGravatar Gael Guennebaud2016-07-25
|
* bug #173: remove dependency to MKL for LAPACKe backend.Gravatar Gael Guennebaud2016-07-25
|
* Fix ambiguous specialization with custom scalar typeGravatar Gael Guennebaud2016-07-20
|
* Add documentation and exemples for inplace decomposition.Gravatar Gael Guennebaud2016-07-04
|
* bug #707: add inplace decomposition through Ref<> for Cholesky, LU and QR ↵Gravatar Gael Guennebaud2016-07-04
| | | | decompositions.
* Change the semantic of the last template parameter of Assignment from ↵Gravatar Gael Guennebaud2016-07-04
| | | | | | | "Scalar" to "SFINAE" only. The previous "Scalar" semantic was obsolete since we allow for different scalar types in the source and destination expressions. On can still specialize on scalar types through SFINAE and/or assignment functor.
* Relax mixing-type constraints for binary coefficient-wise operators:Gravatar Gael Guennebaud2016-06-06
| | | | | | | | | | - Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP> - Remove the "functor_is_product_like" helper (was pretty ugly) - Currently, OP is not used, but it is available to the user for fine grained tuning - Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-= - TODO: generalize all other binray operators (comparisons,pow,etc.) - TODO: handle "scalar op array" operators (currently only * is handled) - TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
* Handle some Index to int conversions in BLAS/LAPACK support.Gravatar Gael Guennebaud2016-05-26
|
* Prevent crash in CompleteOrthogonalDecomposition if object was default ↵Gravatar Rasmus Munk Larsen2016-04-21
| | | | constructed.
* Removed executable bit from header filesGravatar Benoit Steiner2016-03-23
|
* Rename inverse -> pseudoInverse.Gravatar Rasmus Munk Larsen2016-02-10
|
* Enable inverse() method for computing pseudo-inverse.Gravatar Rasmus Munk Larsen2016-02-09
|
* Make applyZAdjointOnTheLeftInPlace protected.Gravatar Rasmus Munk Larsen2016-02-08
|
* Add missing calls to tests of COD.Gravatar Rasmus Munk Larsen2016-02-08
| | | | Fix a few mistakes in 3.2 -> 3.3 port.
* Nevermind.Gravatar Rasmus Munk Larsen2016-02-06
|
* Add my name to copyright notice in ColPivHouseholder.h, mostly for previous ↵Gravatar Rasmus Munk Larsen2016-02-06
| | | | work on stable norm downdate formula.
* Implement complete orthogonal decomposition in Eigen.Gravatar Rasmus Munk Larsen2016-02-06
|
* Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.Gravatar Rasmus Munk Larsen2016-02-03
|
* Make the array of directly compute column norms a member to avoid allocation ↵Gravatar Rasmus Munk Larsen2016-02-03
| | | | in computeInPlace.
* Change Eigen's ColPivHouseholderQR to use the numerically stable norm ↵Gravatar Rasmus Munk Larsen2016-01-28
| | | | | | | | | | | | | | | | | | | | | | | | downdate formula from http://www.netlib.org/lapack/lawnspdf/lawn176.pdf, which has been used in LAPACK's xGEQPF and xGEQP3 since 2006. With the old formula, the code chooses the wrong pivots and fails to correctly determine rank on graded matrices. This change also adds additional checks for non-increasing diagonal in R11 to existing unit tests, and adds a new unit test with the Kahan matrix, which consistently fails for the original code. Benchmark timings on Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz. Code compiled with AVX & FMA. I just ran on square matrices of 3 difference sizes. Benchmark Time(ns) CPU(ns) Iterations ------------------------------------------------------- Before: BM_EigencolPivQR/64 53677 53627 12890 BM_EigencolPivQR/512 15265408 15250784 46 BM_EigencolPivQR/4k 15403556228 15388788368 2 After (non-vectorized version): Benchmark Time(ns) CPU(ns) Iterations Degradation -------------------------------------------------------------------- BM_EigencolPivQR/64 63736 63669 10844 18.5% BM_EigencolPivQR/512 16052546 16037381 43 5.1% BM_EigencolPivQR/4k 15149263620 15132025316 2 -2.0% Performance-wise there seems to be a ~18.5% degradation for small (64x64) matrices, probably due to the cost of more O(min(m,n)^2) sqrt operations that are not needed for the unstable formula.
* Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation ↵Gravatar Gael Guennebaud2016-01-01
| | | | warnings
* Fix MKL compilation issueGravatar Gael Guennebaud2015-12-11
|
* Fix compilation of MKL support.Gravatar Gael Guennebaud2015-12-11
|
* Generalize matrix ctor and compute() method of dense decomposition to 1) ↵Gravatar Gael Guennebaud2015-09-07
| | | | limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
* bug #949: add static assertion for incompatible scalar types in dense ↵Gravatar Gael Guennebaud2015-03-13
| | | | end-user decompositions.
* New scoring functor to select the pivot.Gravatar Marc Glisse2015-03-03
| | | | This is can be useful for non-floating point scalars, where choosing the biggest element is generally not the best choice.
* Merged in chtz/eigen-indexconversion (pull request PR-92)Gravatar Gael Guennebaud2015-02-16
|\ | | | | | | | | | | | | | | | | | | | | | | bug #877, bug #572: Get rid of Index conversion warnings, summary of changes: - Introduce a global typedef Eigen::Index making Eigen::DenseIndex and AnyExpr<>::Index deprecated (default is std::ptrdiff_t). - Eigen::Index is used throughout the API to represent indices, offsets, and sizes. - Classes storing an array of indices uses the type StorageIndex to store them. This is a template parameter of the class. Default is int. - Methods that *explicitly* set or return an element of such an array take or return a StorageIndex type. In all other cases, the Index type is used.
| * Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
| |
* | bug #952: Missing \endcode made doxygen fail to build ColPivHouseholderQRGravatar Christoph Hertzberg2015-02-15
| |
| * Index refactoring: StorageIndex must be used for storage only (and locally ↵Gravatar Gael Guennebaud2015-02-13
| | | | | | | | when it make sense). In all other cases use the global Index type.
| * Merge Index-refactoring branch with default, fix PastixSupport, remove some ↵Gravatar Gael Guennebaud2015-02-13
| |\ | |/ |/| | | useless typedefs
* | bug #941: fix accuracy issue in ColPivHouseholderQR, do not stop ↵Gravatar Gael Guennebaud2015-01-30
| | | | | | | | decomposition on a small pivot