aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU/LU.h
Commit message (Collapse)AuthorAge
* 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
* move PartialLU to the new APIGravatar Benoit Jacob2009-10-21
|
* * make PartialLU avoid to generate inf/nan when given a singular matrixGravatar Benoit Jacob2009-10-20
| | | | | | | (result undefined, but at least it won't take forever on intel 387) * add lots of comments, especially to LU.h * fix stuff I had broken in Inverse.h * split inverse test
* * LU unit test: finally test fixed sizesGravatar Benoit Jacob2009-10-19
| | | | * ReturnByValue: after all don't eval to temporary for generic MatrixBase impl
* remove the m_originalMatrix member. Instead, image() now takes the original ↵Gravatar Benoit Jacob2009-10-18
| | | | matrix as parameter. It was the only method to use it anyway. Introduce m_isInitialized.
* * useThreshold -> setThresholdGravatar Benoit Jacob2009-10-18
| | | | * remove defaultThreshold()
* big huge changes in LU!Gravatar Benoit Jacob2009-10-18
| | | | | | | | | | | | | * continue the decomposition until a pivot is exactly zero; don't try to compute the rank in the decomposition itself. * Instead, methods such as rank() use a new internal parameter called 'threshold' to determine which pivots are to be considered nonzero. * The threshold is by default determined by defaultThreshold() but the user can override that by calling useThreshold(value). * In solve/kernel/image, don't assume that the diagonal of U is sorted in decreasing order, because that's only approximately true. Additional work was needed to extract the right pivots.
* don't try to finish earlyGravatar Benoit Jacob2009-10-15
|
* move also inverse() to ReturnByValue, by doing a solve on NestByValue<Identity>.Gravatar Benoit Jacob2009-09-26
| | | | also: adding resize() to MatrixBase was really needed ;)
* * make LU::kernel() and LU::image() also use ReturnByValueGravatar Benoit Jacob2009-09-22
| | | | | * make them return zero vector in the degenerate case, instead of asserting (let's stick to the principle that we only assert on memory errors)
* fix docsGravatar Benoit Jacob2009-09-22
|
* convert LU::solve() to the new APIGravatar Benoit Jacob2009-09-22
|
* finally, the correct way of dealing with zero matrices in solve()Gravatar Benoit Jacob2009-08-24
|
* clarifications in LU::solve() and in LU documentationGravatar Benoit Jacob2009-08-24
|
* bugfix in compute_matrix_flags, optimization in LU,Gravatar Gael Guennebaud2009-08-16
| | | | | improve doc, and workaround aliasing detection in MatrixBase_eval snippet (not very nice but I don't know how to do it in a better way)
* in all decs, make the compute() methods return *thisGravatar Benoit Jacob2009-08-15
| | | | (implements feature request #18)
* machine_epsilon -> epsilon as wrapper around numeric_traitsGravatar Benoit Jacob2009-08-14
|
* make LU::solve() not to crash when rank=0Gravatar Gael Guennebaud2009-08-09
|
* replace custom rank one update in LU by an expressionGravatar Gael Guennebaud2009-08-08
|
* fix assertions, improve docs.Gravatar Benoit Jacob2009-08-05
| | | | | we never assert on conditions that depend on the result of a computation!! also the assertion that rank>0 amounts to matrix!=0 which we have to leave under the responsibility of the user.
* compilation fixesGravatar Gael Guennebaud2009-07-27
|
* mergeGravatar Benoit Jacob2009-05-22
|\
| * remove sentence "Eigen itself is part of the KDE project."Gravatar Benoit Jacob2009-05-22
| | | | | | | | it never made very precise sense. but now does it still make any?
* | LU and PartialLU decomposition interface unification.Gravatar Hauke Heibel2009-05-22
| | | | | | | | | | | | Added default ctor and public compute method as well as safe-guards against uninitialized usage. Added unit tests for the safe-guards.
* | add internal comment (mostly a pretext to test the eigen-commits list)Gravatar Benoit Jacob2009-05-20
|/
* constant Diagonal ---> DiagonalBitsGravatar Benoit Jacob2009-05-10
| | | | | | introduce ei_is_diagonal to check for it DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic -> add MatrixBase::diagonal(int) with unittest and doc
* result of our experiments with LU tuning: implement very simple formula, thatGravatar Benoit Jacob2009-05-07
| | | | turns out to be similar to Higham's formula already in use in LDLt
* 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
|