aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU/LU.h
Commit message (Collapse)AuthorAge
* oops, didn't want to commit thatGravatar Benoit Jacob2009-05-07
|
* CREDIT Hauke Heibel, more std::vector::insert fixesGravatar Benoit Jacob2009-05-07
|
* documentation update/improvementGravatar Benoit Jacob2009-01-26
|
* compute the rank on the fly rather than at the end, and stop earlyGravatar Benoit Jacob2009-01-26
| | | | in the case of non-full rank (so big optimization in case the rank is low)
* * mark Geometry as experimentalGravatar Benoit Jacob2009-01-26
| | | | | | | * install QtAlignedMalloc * finish the renaming Regression->LeastSquares * install LeastSquares directory (!!!) * misc dox fixes
* * solveTriangularInPlace(): take a const ref and const_cast it, to allow ↵Gravatar Benoit Jacob2009-01-25
| | | | | | | passing temporary xprs. * improvements, simplifications in LU::solve() * remove remnant of old norm2()
* Optimization in LU::solve: when rows<=cols, no need to compute the L matrixGravatar Benoit Jacob2009-01-25
| | | | | | | Remove matrixL() and matrixU() methods: they were tricky, returning a Part, and matrixL() was useless for non-square LU. Also they were untested. This is the occasion to simplify the docs (class_LU.cpp) removing the most confusing part. I think that it's better to let the user do his own cooking with Part's.
* fix bug in the computation of rankGravatar Benoit Jacob2009-01-20
| | | | very difficult to catch in unit-tests because this is very noisy
* * the 4th template param of Matrix is now Options. One bit for storageGravatar Benoit Jacob2009-01-04
| | | | | | | | | | | | | | | | order, one bit for enabling/disabling auto-alignment. If you want to disable, do: Matrix<float,4,1,Matrix_DontAlign> The Matrix_ prefix is the only way I can see to avoid ambiguity/pollution. The old RowMajor, ColMajor constants are deprecated, remain for now. * this prompted several improvements in matrix_storage. ei_aligned_array renamed to ei_matrix_array and moved there. The %16==0 tests are now much more centralized in 1 place there. * unalignedassert test: updated * update FindEigen2.cmake from KDElibs * determinant test: use VERIFY_IS_APPROX to fix false positives; add testing of 1 big matrix
* * In LU solvers: no need anymore to use row-major matricesGravatar Benoit Jacob2009-01-03
| | | | | | | | * Matrix: always inherit WithAlignedOperatorNew, regardless of vectorization or not * rename ei_alloc_stack to ei_aligned_stack_alloc * mixingtypes test: disable vectorization as SSE intrinsics don't allow mixing types and we just get compile errors there.
* * the Upper->UpperTriangular changeGravatar Benoit Jacob2008-12-20
| | | | * finally get ei_add_test right
* * 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.
* LU class:Gravatar Benoit Jacob2008-12-17
| | | | | | * add image() and computeImage() methods, with unit test * fix a mistake in the definition of KernelResultType * fix and improve comments
* * 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
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* * sparse LU: add extraction of L,U,P, and Q, as well as determinantGravatar Gael Guennebaud2008-10-20
| | | | | for both backends. * extended a bit the sparse unit tests
* 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.
* compilation fixes with MSVCGravatar Gael Guennebaud2008-09-03
|
* * remove LargeBit and related stuffGravatar Gael Guennebaud2008-08-23
| | | | | | | * replaced the Flags template parameter of Matrix by StorageOrder and move it back to the 4th position such that we don't have to worry about the two Max* template parameters * extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
* Various compilation fixes for MSVC 9. All tests compile but someGravatar Gael Guennebaud2008-08-19
| | | | still fail at runtime in ei_aligned_free() (even without vectorization).
* * revert the previous interface change in solveTriangular (pointer vs reference)Gravatar Gael Guennebaud2008-08-18
| | | | | | | | | * remove the cast operators in the Geometry module: they are replaced by constructors and new operator= in Matrix * extended the operations supported by Rotation2D * rewrite in solveTriangular: - merge the Upper and Lower specializations - big optimization of the path for row-major triangular matrices
* change solveTriangularInPlace() to take a pointer as input (as discussed on ↵Gravatar Gael Guennebaud2008-08-12
| | | | | | IRC). extended the documentation of the triangular solver.
* Complete LU documentationGravatar Benoit Jacob2008-08-11
|
* * add Regression module, from eigen1, improved, with doc and unit-test.Gravatar Benoit Jacob2008-08-11
| | | | | | | | | * fix .normalized() so that Random().normalized() works; since the return type became complicated to write down i just let it return an actual vector, perhaps not optimal. * add Sparse/CMakeLists.txt. I suppose that it was intentional that it didn't have CMakeLists, but in <=2.0 releases I'll just manually remove Sparse.
* renamed inverseProduct => solveTriangularGravatar Gael Guennebaud2008-08-09
|
* * add LU unit-test. Seems like we have very good numerical stability!Gravatar Benoit Jacob2008-08-09
| | | | * some cleanup, and grant me a copyright line on the determinant test.
* * reimplement the general case of inverse() on top of LU. Advantages:Gravatar Benoit Jacob2008-08-09
| | | | | | | | | | | | - removes much code - 2.5x faster (even though LU uses complete pivoting contrary to what inverse used to do!) - there _were_ numeric stability problems with the partial pivoting approach of inverse(), with 200x200 matrices inversion failed almost half of the times (overflow). Now these problems are solved thanks to complete pivoting. * remove some useless stuff in LU
* *implement LU solver (solves any rectangular system)Gravatar Benoit Jacob2008-08-09
| | | | | | *in test/CMakeLists : modify EI_ADD_TEST so that 2nd argument is additional compiler flags. used to add -O2 to test_product_large so it doesn't take forever.
* * fix bug in SwapWrapper : store the wrapped expression by referenceGravatar Benoit Jacob2008-08-09
| | | | | | * optimize setIdentity: when the matrix is large enough it is better to setZero() and overwrite the diagonal * start of LU solver, disabled for now
* - add kernel computation using the triangular solverGravatar Benoit Jacob2008-08-07
| | | | | | - take advantage of the fact that our LU dec sorts the eigenvalues of U in decreasing order - add meta selector in determinant
* LU: remove partial-pivoting path (moderately useful since it's doesGravatar Benoit Jacob2008-08-07
| | | | | | | | not allow to easily get the rank), fix a bug (which could have been triggered by matrices having coefficients of very different magnitudes). Part: add an assert to prevent hard to find bugs Swap: update comments
* Add partial pivoting runtime option to LU.Gravatar Benoit Jacob2008-08-05
| | | | | | | Note: in fact, inverse() always uses partial pivoting because the algo currently used doesn't make sense with complete pivoting. No num stability issue so far even with size 200x200. If there is any problem we can of course reimplement inverse on top of LU.
* big performance improvement in inverse and LUGravatar Benoit Jacob2008-08-04
|
* * LU decomposition, supporting all rectangular matrices, with fullGravatar Benoit Jacob2008-08-04
pivoting for better numerical stability. For now the only application is determinant. * New determinant unit-test. * Disable most of Swap.h for now as it makes LU fail (mysterious). Anyway Swap needs a big overhaul as proposed on IRC. * Remnants of old class Inverse removed. * Some warnings fixed.