Rasmus Munk Larsen
110530a4d8
Fix bugs and improve robustness of SelfAdjointEigenSolver, improve test coverage
...
libeigen/eigen!2396
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-04-07 21:08:29 -07:00
Rasmus Munk Larsen
b8baa2c49c
Split eigensolver_selfadjoint test to fix NVHPC OOM
...
libeigen/eigen!2347
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-27 18:09:26 -07:00
Pavel Guzenfeld
a0e30732a7
Remove trailing semicolon from EIGEN_UNUSED_VARIABLE macro
...
libeigen/eigen!2301
Closes #3007
Co-authored-by: Pavel Guzenfeld <67074795+PavelGuzenfeld@users.noreply.github.com >
2026-03-21 16:54:13 -07:00
Rasmus Munk Larsen
a0b16a7e1b
Fix flaky product and eigensolver_selfadjoint tests
...
libeigen/eigen!2326
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-20 13:44:03 -07:00
Rasmus Munk Larsen
d537b51ede
Fix ComplexEigenSolver NaN with flush-to-zero arithmetic
...
libeigen/eigen!2196
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-23 11:15:31 -08:00
Rasmus Munk Larsen
7eaf9ae68d
Add a method to SelfAdjointEigenSolver for computing the matrix exponential
2025-10-05 15:06:04 +00:00
Antonio Sánchez
c1d637433e
Judge unitary-ness relative to scaling.
2024-04-30 22:28:46 +00:00
Antonio Sánchez
46e9cdb7fe
Clang-format tests, examples, libraries, benchmarks, etc.
2023-12-05 21:22:55 +00:00
Theo Fletcher
2ced0cc233
Added complex matrix unit tests for SelfAdjointEigenSolve
2021-04-26 19:00:51 +00:00
Gael Guennebaud
82f0ce2726
Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with 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
2018-07-17 14:46:15 +02:00
Gael Guennebaud
12e1ebb68b
Remove local Index typedef from unit-tests
2018-07-12 17:16:40 +02:00
Gael Guennebaud
53026d29d4
bug #478 : fix regression in the eigen decomposition of zero matrices.
2017-01-31 14:22:42 +01:00
Gael Guennebaud
fd2f989b1d
Fix testing of nearly zero input matrices.
2016-07-26 14:46:02 +02:00
Gael Guennebaud
1b2049fbda
Enforce scalar types in calls to max/min (helps with expression template scalar types)
2016-07-25 12:35:10 +02:00
Gael Guennebaud
df9a5e13c6
Fix SelfAdjointEigenSolver for some input expression types, and add new regression unit tests for sparse and selfadjointview inputs.
2016-05-19 13:07:33 +02:00
Gael Guennebaud
9285647dfe
Limit matrix size when testing for NaN: they can become prohibitively expensive when running on x87 fp unit
2015-10-30 14:44:22 +01:00
Gael Guennebaud
f93654ae16
bug #1098 : fix regression introduced when generalizing some compute() methods in changeset 7031a851d4
...
.
2015-10-26 16:00:25 +01:00
Gael Guennebaud
ca0dd7ae26
Fix implicit cast in unit test
2015-10-07 15:36:12 +02:00
Gael Guennebaud
cd8b996f99
Extend unit test and documentation of SelfAdjointEigenSolver::computeDirect
2015-06-08 16:16:42 +02:00
Gael Guennebaud
a852001196
Add regression test for bugs #854 and #1014 , and check that the eigenvector matrix is unitary.
2015-05-12 18:45:39 +02:00
Gael Guennebaud
c2107d30ce
Extend unit tests of sefladjoint-eigensolver
2015-05-07 15:54:07 +02:00
Gael Guennebaud
371d3bef36
Workaround dead store warnings in unit tests.
2015-02-18 11:30:44 +01:00
Christoph Hertzberg
3d25b1f5b8
Split up some test cases
2014-10-29 17:46:54 +01:00
Christoph Hertzberg
1fa6fe2abd
template keyword not allowed before non-template function call
2014-10-01 14:33:55 +02:00
Christoph Hertzberg
27d6b4daf9
Tridiagonalization::diagonal() and ::subDiagonal() did not work. Added unit-test
2014-09-24 14:37:13 +02:00
Gael Guennebaud
9c0aa81fbf
bug #854 : fix numerical issue in SelfAdjointEigenSolver::computeDirect for 3x3 matrices. The tolerance to detect stable cross products was too optimistic.
...
Add respective unit tests.
2014-08-21 10:49:09 +02:00
Desire NUENTSA
736fe99fbf
Fix bug #326 : expose tridiagonal eigensolver to end-users through ComputeFromTridiagonal()
2013-07-18 10:32:31 +02:00
Gael Guennebaud
95f8a738ea
Introduce a TEST_SET_BUT_UNUSED_VARIABLE macro for initialized but unused variables in the unit tests and also fix a few other warnings.
2013-06-25 11:42:04 +02:00
Gael Guennebaud
d1d7a1ade9
Workaround a bunch of stupid warnings in unit tests
2013-06-23 19:11:32 +02:00
Gael Guennebaud
899c0c2b6c
Clean source code and unit tests with respect to -Wunused-local-typedefs
2013-04-10 22:27:35 +02:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Gael Guennebaud
b85bcd91bf
remove GSL dependency in the unit tests
2011-12-01 18:17:19 +01:00
Benoit Jacob
6a1caf0351
Fix some unused-variable warnings with GCC 4.6
2011-10-30 23:55:20 -04:00
Gael Guennebaud
26d7dad138
add a computeDirect method to SelfAdjointEigenSolver for fast eigen decomposition
2011-07-21 19:07:52 +02:00
Gael Guennebaud
a8f66fec65
add the possibility to configure the maximal matrix size in the unit tests
2011-07-12 14:41:00 +02:00
Gael Guennebaud
0d63212257
add a TridiagonalizationMatrixTReturnType class to make Tridiagonalization::matrixT() more efficient and future proof.
2010-11-26 15:31:47 +01:00
Gael Guennebaud
5a4f77716d
fix bug #107 : SelfAdjointEigenSolver and RowMajor (and add unit test)
2010-11-04 09:33:05 +01:00
Hauke Heibel
7bc8e3ac09
Initial fixes for bug #85 .
...
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.
2010-10-25 22:13:49 +02:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Gael Guennebaud
28e64b0da3
email change
2010-06-24 23:21:58 +02:00
Hauke Heibel
f1679c7185
Utilize Index in all unit tests.
2010-06-20 17:37:56 +02:00
Gael Guennebaud
6bff339cc5
add unit tests for other generalized variants
2010-06-17 10:16:15 +02:00
Gael Guennebaud
74006a9fe9
* decouple the generalized selfadjoint eigenvalue problem to the standard one
...
* uses named values instead of bools
2010-06-16 23:48:16 +02:00
Gael Guennebaud
469382407c
* Make HouseholderSequence::evalTo works in place
...
* Clean a bit the Triadiagonalization making sure it the inplace
function really works inplace ;), and that only the lower
triangular part of the matrix is referenced.
* Remove the Tridiagonalization member object of SelfAdjointEigenSolver
exploiting the in place capability of HouseholdeSequence.
* Update unit test to check SelfAdjointEigenSolver only consider
the lower triangular part.
2010-06-10 16:39:46 +02:00
Gael Guennebaud
8855c4e264
fix unit test when GSL is enabled
2010-06-10 00:19:45 +02:00
Jitse Niesen
9178e2bd54
Add info() method which can be queried to check whether iteration converged.
2010-06-03 22:59:57 +01:00
Jitse Niesen
db8631b66a
Guard with assert against using decomposition objects uninitialized.
2010-05-30 21:49:35 +01:00
Jitse Niesen
e7d809d434
Update eigenvalues() and operatorNorm() methods in MatrixBase.
...
* use SelfAdjointView instead of Eigen2's SelfAdjoint flag.
* add tests and documentation.
* allow eigenvalues() for non-selfadjoint matrices.
* they no longer depend only on SelfAdjointEigenSolver, so move them to
a separate file
2010-05-24 17:43:50 +01:00
Adolfo Rodriguez Tsouroukdissian
28dde19e40
- Added problem size constructor to decompositions that did not have one. It 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.
2010-04-21 17:15:57 +02:00
Gael Guennebaud
e3d890bc5a
Another big refactoring change:
...
* add a new Eigen2Support module including Cwise, Flagged, and some other deprecated stuff
* add a few cwiseXxx functions
* adapt a few modules to use cwiseXxx instead of the .cwise() prefix
2009-11-18 18:15:19 +01:00