aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/qr_colpivoting.cpp
Commit message (Collapse)AuthorAge
* Enable CompleteOrthogonalDecomposition::pseudoInverse with non-square ↵Gravatar Gael Guennebaud2019-11-13
| | | | fixed-size matrices.
* 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()
* Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with ↵Gravatar Gael Guennebaud2018-07-17
| | | | | | | | | EIGEN_DECLARE_TEST(mytest) { /* code */ }. This provide several advantages: - more flexibility in designing unit tests - unit tests can be glued to speed up compilation - unit tests are compiled with same predefined macros, which is a requirement for zapcc
* Remove local Index typedef from unit-testsGravatar Gael Guennebaud2018-07-12
|
* Fix compilation of qr.inverse() for column and full pivoting variants.Gravatar Gael Guennebaud2016-10-06
|
* Enable custom scalar types in some unit tests.Gravatar Gael Guennebaud2016-07-20
|
* Silenced several double-promotion warningsGravatar Christoph Hertzberg2016-05-22
|
* Enable and fix -Wdouble-conversion warningsGravatar Christoph Hertzberg2016-05-05
|
* Rename inverse -> pseudoInverse.Gravatar Rasmus Munk Larsen2016-02-10
|
* Enable inverse() method for computing pseudo-inverse.Gravatar Rasmus Munk Larsen2016-02-09
|
* Add missing calls to tests of COD.Gravatar Rasmus Munk Larsen2016-02-08
| | | | Fix a few mistakes in 3.2 -> 3.3 port.
* Implement complete orthogonal decomposition in Eigen.Gravatar Rasmus Munk Larsen2016-02-06
|
* Fix condition that made the unit test spam stdout with bogus error messages.Gravatar Rasmus Munk Larsen2016-02-04
|
* Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.Gravatar Rasmus Munk Larsen2016-02-03
|
* 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.
* Use VERIFY_IS_EQUAL instead of VERIFY(a==b) to get more feedback in case of ↵Gravatar Gael Guennebaud2015-06-26
| | | | failure
* Clean source code and unit tests with respect to -Wunused-local-typedefsGravatar Gael Guennebaud2013-04-10
|
* 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
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* the min/max macros to detect unprotected min/max were undefined by some std ↵Gravatar Gael Guennebaud2011-08-19
| | | | | | header, so let's declare them after and do the respective fixes ;)
* add the possibility to configure the maximal matrix size in the unit testsGravatar Gael Guennebaud2011-07-12
|
* 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
|
* email changeGravatar Gael Guennebaud2010-06-24
|
* Utilize Index in all unit tests.Gravatar Hauke Heibel2010-06-20
|
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* - Added problem size constructor to decompositions that did not have one. It ↵Gravatar Adolfo Rodriguez Tsouroukdissian2010-04-21
| | | | | | | | | | | preallocates member data structures. - Updated unit tests to check above constructor. - In the compute() method of decompositions: Made temporary matrices/vectors class members to avoid heap allocations during compute() (when dynamic matrices are used, of course). These changes can speed up decomposition computation time when a solver instance is used to solve multiple same-sized problems. An added benefit is that the compute() method can now be invoked in contexts were heap allocations are forbidden, such as in real-time control loops. CAVEAT: Not all of the decompositions in the Eigenvalues module have a heap-allocation-free compute() method. A future patch may address this issue, but some required API changes need to be incorporated first.
* * add some 1x1 testsGravatar Benoit Jacob2010-04-16
| | | | * temporarily disable tests that strangely fail, with a big FIXME
* Further LU test improvements. I'm not aware of any test failures anymore, ↵Gravatar Benoit Jacob2010-02-23
| | | | | | not even with huge numbers of repetitions. Finally the createRandomMatrixOfRank() function is renamed to createRandomPIMatrixOfRank, where PI stands for 'partial isometry', that is, a matrix whose singular values are 0 or 1.
* * FullPivLU: replace "remaining==0" termination condition (from Golub) by a ↵Gravatar Benoit Jacob2010-02-23
| | | | | | | | | fuzzy compare (fixes lu test failures when testing solve()) * LU test: set appropriate threshold and limit the number of times that a specially tricky test is run. (fixes lu test failures when testing rank()). * Tests: rename createRandomMatrixOfRank to createRandomProjectionOfRank
* remove the Triangular suffix to Upper, Lower, UnitLower, etc,Gravatar Gael Guennebaud2010-01-07
| | | | and remove the respective bit flags
* * HouseholderSequence:Gravatar Benoit Jacob2009-12-02
| | | | | | | * be aware of number of actual householder vectors (optimization in non-full-rank case, no behavior change) * fix applyThisOnTheRight, it was using k instead of actual_k * QR: rename matrixQ() to householderQ() where applicable
* Big reworking of ColPivQR and its unit test, which now passes even with ↵Gravatar Benoit Jacob2009-12-01
| | | | thousands of repetitions and correctly tests matrices of all sizes. Several surprises along the way: for example, a major cause of trouble was the optimized "table of column squared norms" where the accumulation of imprecision was a serious issue; another surprise is that tests like "x!=0" before dividing by x really benefit from being replaced by fuzzy tests, as i hit real cases where i got wrong results in 1/epsilon.
* fix remaining bug in ColPivHouseholderQR, so now all tests pass againGravatar Benoit Jacob2009-11-18
|
* fix stuff after the PermutationMatrix changes.Gravatar Benoit Jacob2009-11-18
| | | | I still have JacobiSVD errors when cols>rows
* port the qr module to ei_solve_xxx.Gravatar Benoit Jacob2009-11-08
|
* big huge changes, so i dont remember everything.Gravatar Benoit Jacob2009-10-28
| | | | | | | | | | * renaming, e.g. LU ---> FullPivLU * split tests framework: more robust, e.g. dont generate empty tests if a number is skipped * make all remaining tests use that splitting, as needed. * Fix 4x4 inversion (see stable branch) * Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices. * CMakeLists: more robust regexp to parse the version number * misc fixes in unit tests
* also test that the matrix Q is unitaryGravatar Benoit Jacob2009-10-12
|
* Fix compilation of HouseholderQR and ColPivotingHouseholderQR for non-square ↵Gravatar Benoit Jacob2009-09-28
| | | | | | | fixed-size matrices. For Colpiv that was just changing MatrixQType to MatrixType in the instantiation of HouseholderSequence. For HouseholderQR I also re-ported the solve method from Colpiv as there were multiple issues.
* * update test to expose bug #57Gravatar Benoit Jacob2009-09-28
| | | | * update createRandomMatrixOfRank to support fixed size
* make ColPivotingQR use HouseholderSequenceGravatar Gael Guennebaud2009-09-16
|
* * fix bug in col-pivoting qr, forgot to swap the colNorms when swapping colsGravatar Benoit Jacob2009-09-16
| | | | * add Gael a copyright line
* modernize HouseholderQR too, uniformize all that stuff, update testsGravatar Benoit Jacob2009-08-24
|
* bring the modern comfort also to ColPivotingHouseholderQRGravatar Benoit Jacob2009-08-24
| | | | + some fixes in FullPivotingHouseholderQR
* add ColPivotingHouseholderQRGravatar Benoit Jacob2009-08-23
rename RRQR to fullPivotingHouseholderQR