aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU/PartialPivLU.h
Commit message (Collapse)AuthorAge
* Fix inverse nullptr/asan errors for LU.Gravatar Antonio Sanchez2021-07-01
| | | | | | For empty or single-column matrices, the current `PartialPivLU` currently dereferences a `nullptr` or accesses memory out-of-bounds. Here we adjust the checks to avoid this.
* Revert "Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), ↵Gravatar Steve Bronder2021-03-24
| | | | | | innerStride(), outerStride(), and size()"" This reverts commit 5f0b4a4010af4cbf6161a0d1a03a747addc44a5d.
* Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), ↵Gravatar David Tellenbach2021-03-05
| | | | | | | innerStride(), outerStride(), and size()" This reverts commit 6cbb3038ac48cb5fe17eba4dfbf26e3e798041f1 because it breaks clang-10 builds on x86 and aarch64 when C++11 is enabled.
* Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), ↵Gravatar Steve Bronder2021-03-04
| | | | outerStride(), and size()
* Fix conversion warningsGravatar Gael Guennebaud2019-02-19
|
* 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
|
* 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
|
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* 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)
* 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
* 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.
* 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.
* 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
|
* Remove deprecated code not used by evaluatorsGravatar Gael Guennebaud2014-09-18
|
* merge with default branchGravatar Gael Guennebaud2014-07-18
|\
| * bug #397: add a warning for 64 to 32 bit integer conversion and fix many of ↵Gravatar Gael Guennebaud2014-07-17
| | | | | | | | these warning by splitting the index type used for storage and as size/coefficient indexes in PermutationMatrix and Transpositions.
* | merge with default branchGravatar Gael Guennebaud2014-07-02
|\|
| * Removed the deprecated EIGEN2_SUPPORT, as previously announced. A ↵Gravatar Christoph Hertzberg2014-07-01
| | | | | | | | compilation error is raised, if this compile-switch is defined. The documentation references to the corresponding pages from Eigen3.2 now. Also, the Eigen2 testsuite has been removed.
* | Hide some deprecated classes.Gravatar Gael Guennebaud2014-02-24
| |
* | Port LU module to evaluators (except image() and kernel())Gravatar Gael Guennebaud2014-02-20
|/
* merge with default branchGravatar Gael Guennebaud2013-04-19
|\
| * Fix a couple of int versus Index issues.Gravatar Gael Guennebaud2013-04-09
| |
| * Add assertion on the input matrix size in factorizations relying on ↵Gravatar Gael Guennebaud2013-02-26
| | | | | | | | permutations of 32bits int
* | Add support for NVCC5: most of the Core and part of LU are callable from ↵Gravatar Gael Guennebaud2013-02-07
|/ | | | | | CUDA code. Still a lot to do.
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* protect calls to min and max with parentheses to make Eigen compatible with ↵Gravatar Gael Guennebaud2011-07-21
| | | | | | | default windows.h (transplanted from 49b6e9143e1d74441924c0c313536e263e12a55c )
* clean a bit previous patch (ctor vs static_cast and a few bits)Gravatar Gael Guennebaud2011-05-23
|