Rasmus Munk Larsen
0fe8cdfa3b
Extract RankRevealingBase CRTP mixin to eliminate decomposition code duplication
...
libeigen/eigen!2272
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-28 19:12:23 -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
b0ebf966a5
Fix default rank-detection threshold in QR and LU decompositions
...
libeigen/eigen!2232
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-03-03 18:44:22 -08:00
Rasmus Munk Larsen
d5e67adbe7
Clean up informal language, vague TODOs, and dead code in comments
...
libeigen/eigen!2191
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-22 18:32:10 -08:00
Rasmus Munk Larsen
0e424f4050
Remove dead code, commented-out blocks, and outdated comments
...
libeigen/eigen!2172
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-21 12:49:56 -08:00
Rasmus Munk Larsen
bdec88009d
Remove const from return-by-value types (issue #1087 )
...
libeigen/eigen!2144
Closes #1087
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-18 03:10:11 -08:00
Damiano Franzò
6f1a143418
Ensure info() implementation across all SolverBase derived types
2025-05-10 01:25:26 +00:00
Rasmus Munk Larsen
434a2fc4a4
Fix obsolete comment in InverseImpl.h. We use PartialPivLU for the general case.
2025-05-08 23:02:10 +00:00
Tyler Veness
619be0deb6
Replace instances of EIGEN_NOEXCEPT macros
2025-04-22 00:58:47 +00:00
Tyler Veness
d6689a15d7
Replace instances of EIGEN_CONSTEXPR macro
2025-04-18 08:27:52 -07:00
Markus Vieth
0259a52b0e
Use more .noalias()
2025-03-17 19:41:00 +01:00
Antonio Sánchez
becefd59e2
Returns condition number of zero if matrix is not invertible.
2025-02-12 07:09:20 +00:00
Frédéric Chapoton
6331da95eb
fixing a lot of typos
2024-07-30 22:15:49 +00:00
Antonio Sánchez
500a3602f0
Use traits<Matrix>::Options instead of Matrix::Options.
2024-02-16 00:11:57 +00:00
Tobias Wood
f38e16c193
Apply clang-format
2023-11-29 11:12:48 +00:00
Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Charles Schlosser
7bf2968fed
Specify Permutation Index for PartialPivLU and FullPivLU
2023-03-07 20:28:05 +00:00
Antonio Sánchez
c27d1abe46
Fix pragma check for disabling fastmath.
2022-10-26 22:50:57 +00:00
Rasmus Munk Larsen
5ceed0d57f
Guard GCC-specific pragmas with "#ifdef EIGEN_COMP_GNUC"
2022-10-10 20:38:53 +00:00
Antonio Sánchez
7d6a9925cc
Fix 4x4 inverse when compiling with -Ofast.
2022-10-04 16:05:49 +00:00
Erik Schultheis
64909b82bd
static const class members turned into constexpr
2022-04-04 17:33:33 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Erik Schultheis
d271a7d545
reduce float warnings (comparisons and implicit conversions)
2022-01-26 18:16:19 +00:00
Rasmus Munk Larsen
ea2c02060c
Add reciprocal packet op and fast specializations for float with SSE, AVX, and AVX512.
2022-01-21 23:49:18 +00:00
Matthias Möller
a32e6a4047
Explicit type casting
2022-01-10 22:06:43 +00:00
Kolja Brix
8d81a2339c
Reduce usage of reserved names
2022-01-10 20:53:29 +00:00
Erik Schultheis
c20e908ebc
turn some macros intro constexpr functions
2021-12-10 19:27:01 +00:00
Erik Schultheis
d60f7fa518
Improved lapacke binding code for HouseholderQR and PartialPivLU
2021-12-02 00:10:58 +00:00
Rasmus Munk Larsen
6cadab6896
Clean up EIGEN_STATIC_ASSERT to only use standard c++11 static_assert.
2021-09-16 20:43:54 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Alexander Karatarakis
4ba872bd75
Avoid leading underscore followed by cap in template identifiers
2021-08-04 22:41:52 +00:00
Antonio Sanchez
5ad8b9bfe2
Make inverse 3x3 faster and avoid gcc bug.
...
There seems to be a gcc 4.7 bug that incorrectly flags the current
3x3 inverse as using uninitialized memory. I'm *pretty* sure it's
a false positive, but it's hard to trigger. The same warning
does not trigger with clang or later compiler versions.
In trying to find a work-around, this implementation turns out to be
faster anyways for static-sized matrices.
```
name old cpu/op new cpu/op delta
BM_Inverse3x3<DynamicMatrix3T<float>> 423ns ± 2% 433ns ± 3% +2.32% (p=0.000 n=98+96)
BM_Inverse3x3<DynamicMatrix3T<double>> 425ns ± 2% 427ns ± 3% +0.48% (p=0.003 n=99+96)
BM_Inverse3x3<StaticMatrix3T<float>> 7.10ns ± 2% 0.80ns ± 1% -88.67% (p=0.000 n=114+112)
BM_Inverse3x3<StaticMatrix3T<double>> 7.45ns ± 2% 1.34ns ± 1% -82.01% (p=0.000 n=105+111)
BM_AliasedInverse3x3<DynamicMatrix3T<float>> 409ns ± 3% 419ns ± 3% +2.40% (p=0.000 n=100+98)
BM_AliasedInverse3x3<DynamicMatrix3T<double>> 414ns ± 3% 413ns ± 2% ~ (p=0.322 n=98+98)
BM_AliasedInverse3x3<StaticMatrix3T<float>> 7.57ns ± 1% 0.80ns ± 1% -89.37% (p=0.000 n=111+114)
BM_AliasedInverse3x3<StaticMatrix3T<double>> 9.09ns ± 1% 2.58ns ±41% -71.60% (p=0.000 n=113+116)
```
2021-08-04 21:18:44 +00:00
Guoqiang QI
4bcd42c271
Make a copy of input matrix when try to do the inverse in place, this fixes #2285 .
2021-07-08 17:05:26 +00:00
Antonio Sanchez
154f00e9ea
Fix inverse nullptr/asan errors for LU.
...
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.
2021-07-01 13:41:04 -07:00
Antonio Sanchez
12e8d57108
Remove pset, replace with ploadu.
...
We can't make guarantees on alignment for existing calls to `pset`,
so we should default to loading unaligned. But in that case, we should
just use `ploadu` directly. For loading constants, this load should hopefully
get optimized away.
This is causing segfaults in Google Maps.
2021-06-16 18:41:17 -07:00
Rasmus Munk Larsen
fc87e2cbaa
Use bit_cast to create -0.0 for floating point types to avoid compiler optimization changing sign with --ffast-math enabled.
2021-06-11 02:35:53 +00:00
Rasmus Munk Larsen
85a76a16ea
Make vectorized compute_inverse_size4 compile with AVX.
2021-04-22 15:21:01 +00:00
Christoph Hertzberg
6197ce1a35
Replace -2147483648 by -0.0f or -0.0 constants (this should fix #2189 ).
...
Also, remove unnecessary `pgather` operations.
2021-04-07 11:25:27 +00:00
Steve Bronder
e7b8643d70
Revert "Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), outerStride(), and size()""
...
This reverts commit 5f0b4a4010 .
2021-03-24 18:14:56 +00:00
David Tellenbach
5f0b4a4010
Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), outerStride(), and size()"
...
This reverts commit 6cbb3038ac because it
breaks clang-10 builds on x86 and aarch64 when C++11 is enabled.
2021-03-05 13:16:43 +01:00
Steve Bronder
6cbb3038ac
Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), outerStride(), and size()
2021-03-04 18:58:08 +00:00
Antonio Sanchez
60218829b7
EOF newline added to InverseSize4.
...
Causing build breakages due to `-Wnewline-eof -Werror` that seems to be
common across Google.
2020-11-18 07:58:33 -08:00
Guoqiang QI
394f564055
Unify Inverse_SSE.h and Inverse_NEON.h into a single generic implementation using PacketMath.
2020-11-17 12:27:01 +00:00
David Tellenbach
f66f3393e3
Use reinterpret_cast instead of C-style cast in Inverse_NEON.h
2020-10-04 00:35:09 +02:00
Rasmus Munk Larsen
22c971a225
Don't cast away const in Inverse_NEON.h.
2020-10-02 15:06:34 -07:00
Rasmus Munk Larsen
068121ec02
Add missing newline at the end of Inverse_NEON.h
2020-09-29 15:32:52 +00:00
Rasmus Munk Larsen
31a6b88ff3
Disable double version of compute_inverse_size4 on Inverse_NEON.h if Packet2d is not supported.
2020-09-17 23:51:06 +00:00
Stephen Zheng
5f25bcf7d6
Add Inverse_NEON.h
...
Implemented fast size-4 matrix inverse (mimicking Inverse_SSE.h) using NEON intrinsics.
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
--------------------------------------------------------------------------------------------------------
BM_float -0.1285 -0.1275 568 495 572 499
BM_double -0.2265 -0.2254 638 494 641 496
```
2020-09-04 10:55:47 +00:00
Gael Guennebaud
115da6a1ea
Fix conversion warnings
2019-02-19 14:00:15 +01:00
Gael Guennebaud
796db94e6e
bug #1194 : implement slightly faster and SIMD friendly 4x4 determinant.
2019-02-18 16:21:27 +01:00