aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU
Commit message (Collapse)AuthorAge
* Fix conversion warningsGravatar Gael Guennebaud2019-02-19
|
* bug #1194: implement slightly faster and SIMD friendly 4x4 determinant.Gravatar Gael Guennebaud2019-02-18
|
* Let's properly use Score instead of std::abs, and remove deprecated FIXME ( ↵Gravatar Gael Guennebaud2019-02-11
| | | | a /= b does a/b and not a * (1/b) as it was a long time ago...)
* Speed up 2x2 LU by a factor 2, and other small fixed sizes by about 10%.Gravatar Gael Guennebaud2019-02-11
| | | | Not sure that's so critical, but this does not complexify the code base much.
* Speedup PartialPivLU for small matrices by passing compile-time sizes when ↵Gravatar Gael Guennebaud2019-02-11
| | | | | | | | | | | | | | | | | | | | | available. This change set also makes a better use of Map<>+OuterStride and Ref<> yielding surprising speed up for small dynamic sizes as well. The table below reports times in micro seconds for 10 random matrices: | ------ float --------- | ------- double ------- | size | before after ratio | before after ratio | fixed 1 | 0.34 0.11 2.93 | 0.35 0.11 3.06 | fixed 2 | 0.81 0.24 3.38 | 0.91 0.25 3.60 | fixed 3 | 1.49 0.49 3.04 | 1.68 0.55 3.01 | fixed 4 | 2.31 0.70 3.28 | 2.45 1.08 2.27 | fixed 5 | 3.49 1.11 3.13 | 3.84 2.24 1.71 | fixed 6 | 4.76 1.64 2.88 | 4.87 2.84 1.71 | dyn 1 | 0.50 0.40 1.23 | 0.51 0.40 1.26 | dyn 2 | 1.08 0.85 1.27 | 1.04 0.69 1.49 | dyn 3 | 1.76 1.26 1.40 | 1.84 1.14 1.60 | dyn 4 | 2.57 1.75 1.46 | 2.67 1.66 1.60 | dyn 5 | 3.80 2.64 1.43 | 4.00 2.48 1.61 | dyn 6 | 5.06 3.43 1.47 | 5.15 3.21 1.60 |
* bug #1669: fix PartialPivLU/inverse with zero-sized matrices.Gravatar Gael Guennebaud2019-01-29
|
* Make FullPivLU use conjugateIf<>Gravatar Gael Guennebaud2019-01-17
|
* 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()
* Add conjugateIf<bool> members to DesneBase, TriangularView, SelfadjointView, ↵Gravatar Gael Guennebaud2019-01-17
| | | | and make PartialPivLU use it.
* Fix StorageIndex FIXME in dense LU solversGravatar Gael Guennebaud2019-01-13
|
* bug #1644: fix warningGravatar Gael Guennebaud2018-12-11
|
* Cast to diagonalSize to RealScalar instead Scalar.Gravatar Rasmus Munk Larsen2018-08-09
|
* Cast diagonalSize() to Scalar before multiplication. Without this, automatic ↵Gravatar Rasmus Munk Larsen2018-08-09
| | | | differentiation in Ceres breaks because Scalar is a custom type that does not support multiplication by Index.
* Extend CUDA support to matrix inversion and selfadjointeigensolverGravatar Andrea Bocci2018-06-11
|
* bug #1509: fix computeInverseWithCheck for complexesGravatar Gael Guennebaud2018-04-04
|
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* Adjusted the EIGEN_DEVICE_FUNC qualifiers to make sure that:Gravatar Benoit Steiner2017-03-01
| | | | | * they're used consistently between the declaration and the definition of a function * we avoid calling host only methods from host device methods.
* Fix regression in X = (X*X.transpose())/s with X rectangular by deferring ↵Gravatar Gael Guennebaud2016-10-26
| | | | resizing of the destination after the creation of the evaluator of the source expression.
* Removed EIGEN_DEVICE_FUNC qualifers for the lu(), fullPivLu(), ↵Gravatar Benoit Steiner2016-09-19
| | | | partialPivLu(), and inverse() functions since they aren't ready to run on GPU
* Added several missing EIGEN_DEVICE_FUNC qualifiersGravatar Benoit Steiner2016-09-14
|
* bug #1285: fix regression introduced in changeset ↵Gravatar Gael Guennebaud2016-09-13
| | | | 00c29c2caef8fb0c6b1d2ba5ecdf6780c0c766d4
* 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)
* Fix 4x4 inverse with non-linear destinationGravatar Gael Guennebaud2016-08-30
|
* bug #1167: simplify installation of header files using cmake's ↵Gravatar Gael Guennebaud2016-08-29
| | | | install(DIRECTORY ...) command.
* 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
|
* 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.
* 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
* Fix/handle some int-to-long conversions.Gravatar Gael Guennebaud2016-05-26
|
* Store permutation's determinant as char.Gravatar Gael Guennebaud2016-05-26
| | | | This also fixes some long to float conversion warnings
* Handle some Index to int conversions in BLAS/LAPACK support.Gravatar Gael Guennebaud2016-05-26
|
* Cleaning pass on rcond estimator.Gravatar Gael Guennebaud2016-04-14
|
* Addresses comments on Eigen pull request PR-174.Gravatar Rasmus Munk Larsen2016-04-04
| | | | | | | | * Get rid of code-duplication for real vs. complex matrices. * Fix flipped arguments to select. * Make the condition estimation functions free functions. * Use Vector::Unit() to generate canonical unit vectors. * Misc. cleanup.
* Add matrix condition estimator module that implements the Higham/Hager ↵Gravatar Rasmus Munk Larsen2016-04-01
| | | | algorithm from http://www.maths.manchester.ac.uk/~higham/narep/narep135.pdf used in LPACK. Add rcond() methods to FullPivLU and PartialPivLU.
* Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation ↵Gravatar Gael Guennebaud2016-01-01
| | | | warnings
* Add LU::transpose().solve() and LU::adjoint().solve() API.Gravatar Gael Guennebaud2015-12-01
|
* Add internal method _solve_impl_transposed() to LU decomposition classes ↵Gravatar Rasmus Munk Larsen2015-11-30
| | | | that solves A^T x = b or A^* x = b.
* Make FullPivLU::solve use rank() instead of nonzeroPivots().Gravatar Gael Guennebaud2015-11-21
|
* 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
* Cleaning pass on evaluators: remove the useless and error prone ↵Gravatar Gael Guennebaud2015-09-02
| | | | evaluator<>::type indirection.
* Fix FullPivLU::image documentationGravatar Gael Guennebaud2015-09-02
|
* 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.
* 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.
* Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
|
* 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.
* bug #877, bug #572: Introduce a global Index typedef. Rename Sparse*::Index ↵Gravatar Christoph Hertzberg2014-12-04
| | | | to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings.
* Make constructors explicit if they could lead to unintended implicit conversionGravatar Christoph Hertzberg2014-09-23
|