Rasmus Munk Larsen
8346cc3410
Fix three bugs in SelfAdjointEigenSolver and improve test coverage
...
Bug fixes:
1. computeDirect 3x3: eigenvalues from computeRoots() are theoretically
sorted via the trigonometric formula, but floating-point rounding
(especially in float) can break the ordering. Add a 3-element sorting
network after computeRoots() to guarantee sorted output.
2. compute(): Inf input silently returns Success with garbage results,
unlike NaN which correctly returns NoConvergence. Add an isfinite()
check on the scaling factor (which is maxCoeff of the matrix) to
detect Inf/NaN early and return NoConvergence.
3. computeFromTridiagonal(): lacks the equilibration scaling that
compute() applies, causing overflow and NoConvergence for tridiagonal
matrices with large entries. Add the same scale-to-[-1,1] pattern.
New tests:
- Eigenvalue sorting verification (both iterative and direct solvers)
- Repeated/degenerate eigenvalues (all equal, multiplicity n-1, two
clusters, nearly repeated separated by O(epsilon))
- Extreme eigenvalue ranges (high condition number spanning many orders
of magnitude, near-underflow, near-overflow, mixed positive/negative,
rank-deficient with zero eigenvalue)
- computeFromTridiagonal with large and tiny values
- Diagonal matrices (eigenvalues must match sorted diagonal)
- operatorInverseSqrt accuracy (sqrtA*invSqrtA=I, invSqrtA*A*invSqrtA=I,
symmetry)
- RowMajor storage for computeDirect (2x2, 3x3, float, double) and
iterative solver (dynamic RowMajor)
- Inf input detection
- Tridiagonal structure verification (off-tridiagonal entries are zero)
- Direct solver stress tests: 3x3 (near-planar covariance, triple
eigenvalue, double eigenvalue, large off-diagonal, nearly singular)
and 2x2 (equal eigenvalues, tiny off-diagonal, huge diagonal ratio,
anti-diagonal dominant, negative entries)
- Tightened unitary tolerance from fixed 32*test_precision to
4*n*epsilon (scales with matrix size)
- Fixed typo: "expponential" -> "exponential"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 18:07:55 -07:00
Rasmus Munk Larsen
ebae0c7c10
ulp_accuracy: use dynamic work queue for thread load balancing
...
libeigen/eigen!2383
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-04-02 22:40:03 -07:00
Charles Schlosser
5977635d64
fix singed integer overflow UB in integer_types and other trivial compiler warnings
...
libeigen/eigen!2380
2026-04-03 03:36:28 +00:00
Rasmus Munk Larsen
60df12437e
Fix ulp_accuracy crashes in Release builds
...
libeigen/eigen!2381
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-04-02 20:12:13 -07:00
Rasmus Munk Larsen
8ec68856a6
Fix basicstuff_8 casting test failure on loongarch64
...
libeigen/eigen!2379
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-04-02 14:14:54 -07:00
Rasmus Munk Larsen
64885cc6a3
Fix remaining MSVC warnings in Windows CI (C4804, C4244, C4146, C4305)
...
libeigen/eigen!2374
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-04-01 17:20:31 -07:00
Pavel Guzenfeld
b7f6aed1b9
Fix dangling reference in IndexedView with expression indices
...
libeigen/eigen!2335
Closes #1943
2026-03-29 09:39:13 -07:00
Rasmus Munk Larsen
624ab58e8d
Add bidiagonal SVD API to BDCSVD and remove dead debug code
...
libeigen/eigen!2238
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-28 20:38:31 -07:00
Charles Schlosser
ba9871e46b
fix and enable realview unit tests
...
libeigen/eigen!2356
2026-03-28 20:13:54 -07:00
Rasmus Munk Larsen
5e521f3e45
Revert "add realview test"
...
This reverts merge request !2352
2026-03-28 17:27:01 -07:00
Charles Schlosser
87ae1dbe7f
add realview test
...
libeigen/eigen!2352
2026-03-28 16:26:51 -07:00
Rasmus Munk Larsen
9706546a14
Add Householder blocked-right regression test
...
libeigen/eigen!2348
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-27 20:49:43 -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
Rasmus Munk Larsen
f574cb9b18
Fix vectorization_logic test for generic clang backend
...
libeigen/eigen!2333
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-22 22:12:57 -07:00
Rasmus Munk Larsen
843ffcec8b
Fix warnings reported by NVHPC 26.1
...
libeigen/eigen!2324
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-22 11:43:40 -07:00
Florian Maurin
71ef987edb
Fixes triangular solves on indexed/sliced dense expressions
...
libeigen/eigen!2340
Closes #2814
2026-03-22 11:12:21 -07:00
Rasmus Munk Larsen
6490b17e6f
Fix sanitizer regressions in sparse serializer and packet tests
...
libeigen/eigen!2319
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-22 09:10:16 -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
54b04fc6b1
Fix mixed-type GEMM packing for backends without half/quarter packets
...
libeigen/eigen!2297
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-21 09:46:54 -07:00
Pavel Guzenfeld
1d21d62fbc
Fix computeInverseAndDetWithCheck for dynamic result matrices
...
libeigen/eigen!2312
Closes #2917
2026-03-21 08:38:27 -07:00
Rasmus Munk Larsen
cc8c7cf0e6
Fix bugs and clean up SparseCore module
...
libeigen/eigen!2250
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-21 13:31:12 +00:00
Rasmus Munk Larsen
8115b45e50
Fix integer sanitizer issues in shifts and test ranges
...
libeigen/eigen!2320
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-20 17:27:02 -07:00
Rasmus Munk Larsen
6540bf4787
Harden unsupported tensor tests for sanitizers
...
libeigen/eigen!2321
Co-authored-by: Rasmus Munk Larsen <rlarsen@nvidia.com >
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-20 15:12:41 -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
Pavel Guzenfeld
a72172e563
Add blocking and vectorization boundary tests for LU and Cholesky
...
libeigen/eigen!2317
2026-03-20 13:27:49 -07:00
Rasmus Munk Larsen
8a47aa334b
Replace empirical product test tolerances with principled Higham-Mary bounds
...
libeigen/eigen!2292
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-20 11:03:58 -07:00
Pavel Guzenfeld
05295a818b
Fix undefined behavior in matrix_cwise test for signed integers
...
libeigen/eigen!2310
Closes #2933
2026-03-18 11:51:01 -07:00
Rasmus Munk Larsen
ea13a98dec
Fix imag_ref for real scalar types and clean up svd_fill.h
...
libeigen/eigen!2303
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-15 19:56:01 -07:00
Antonio Sánchez
929785924c
Fix more cache size queries.
...
libeigen/eigen!2296
2026-03-14 16:07:44 +00:00
Antonio Sánchez
b2f95d3733
Fix more cache size queries.
...
libeigen/eigen!2295
2026-03-14 15:43:24 +00:00
Rasmus Munk Larsen
c1faa74738
Add boundary test coverage: stableNorm, LinSpaced, complex GEMV, triangular solve
...
libeigen/eigen!2291
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 18:15:30 -07:00
Rasmus Munk Larsen
6b9275d1a8
Add test coverage for transpose, reverse, bool redux, select, diagonal-of-product at boundaries
...
libeigen/eigen!2290
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 17:02:58 -07:00
Rasmus Munk Larsen
356a9ba1da
Add test coverage for matrix lpNorm, RowMajor partial reductions, selfadjoint boundaries
...
libeigen/eigen!2289
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 14:45:51 -07:00
Rasmus Munk Larsen
15cae83485
Add test coverage for strided maps, triangular blocking, and mixed storage orders
...
libeigen/eigen!2288
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 14:07:21 -07:00
Rasmus Munk Larsen
93aa959b8a
Add vectorization boundary tests for redux and visitor
...
libeigen/eigen!2287
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 13:47:15 -07:00
Rasmus Munk Larsen
c93116b43d
Improve test coverage for inner product, fill, reductions, and IO
...
libeigen/eigen!2286
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 12:48:45 -07:00
Rasmus Munk Larsen
5e478d3285
Improve product test coverage at critical code-path boundaries
...
libeigen/eigen!2285
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-12 12:32:06 -07:00
Charles Schlosser
875fb48f0a
fix various irksome compiler warnings
...
libeigen/eigen!2280
2026-03-11 21:01:20 -07:00
Charles Schlosser
c4eb3c4f4c
fix custom visitors
...
libeigen/eigen!2275
Closes #2920
2026-03-11 10:52:49 +00:00
Antonio Sánchez
4387e32481
Fix row-skipping bug in general_matrix_vector_product::run_small_cols
...
libeigen/eigen!2276
2026-03-10 15:16:00 -07:00
Rasmus Munk Larsen
42b6c43cfe
Revert "Remove random retry loops in tests (batch 2: indices and integer types)"
...
This reverts merge request !2261
2026-03-09 20:01:53 -07:00
Rasmus Munk Larsen
54458cb39d
Remove random retry loops in tests (batch 3: geometry, sparse, umeyama)
...
libeigen/eigen!2262
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-09 00:35:26 -07:00
Rasmus Munk Larsen
8eaa7552fe
Fix three flaky tests: packetmath, array_cwise, polynomialsolver
...
libeigen/eigen!2267
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 14:59:23 -07:00
Rasmus Munk Larsen
dd81698aed
Fix vectorization_logic test for wide SIMD widths
...
libeigen/eigen!2266
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 12:11:33 -07:00
Rasmus Munk Larsen
ab58784268
Remove random retry loops in tests (batch 5: geometry, mixing types, triangular)
...
libeigen/eigen!2264
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 11:51:35 -07:00
Rasmus Munk Larsen
411422f2dc
Remove random retry loop in SVD min-norm test
...
libeigen/eigen!2263
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 11:20:27 -07:00
Rasmus Munk Larsen
7c3a344763
Remove random retry loops in tests (batch 2: indices and integer types)
...
libeigen/eigen!2261
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 11:02:45 -07:00
Rasmus Munk Larsen
be7538ed65
Remove random retry loops in tests (batch 1: simple scalar cases)
...
libeigen/eigen!2260
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-08 10:44:57 -07:00
Rasmus Munk Larsen
3041ab44af
Fix GEBP asm register constraints for custom scalar types
...
libeigen/eigen!2258
Closes #3059
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-07 07:49:27 -08:00
Antonio Sánchez
20fce70e5a
Fix another complex div edge case.
...
libeigen/eigen!2257
2026-03-06 13:37:26 -08:00