Commit Graph

257 Commits

Author SHA1 Message Date
Pavel Kučera 201ec1dd7f
Update inverse.rs - improved code doc try_inverse_mut
The "and leaves `self` untouched" part of the code doc was wrong. Self may be modified before early false return.
2024-05-23 09:50:21 +02:00
Jennifer Chukwu 5e8779957e missed one cofactor 2024-04-28 16:02:46 +00:00
Jennifer Chukwu c21df4e1a3 remove else 2024-04-22 19:00:44 +00:00
Jennifer Chukwu a0da49fb83 early return 2024-04-22 12:36:35 +00:00
Jennifer Chukwu d331bbd7c1 inversion 2024-04-19 14:49:14 +00:00
Vollkornaffe c475c4000c
Fix numerical issue on SVD with near-identity matrix (#1369)
* fix: Normalize the column once more

The column may not be normalized if the `factor` is on a scale of 1e-40.
Possibly, f32 just runs out of precision.

There is likely a better solution to the problem.

* chore: Add test that fails before fix

* chore: add comment providing details on the householder fix.

* chore: rename regression test

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2024-03-28 15:26:11 +01:00
Yotam Ofek 1cfc539a96 Fix type inference error in tests on rustc beta 2024-03-22 12:36:59 -07:00
Julian Knodt 1e0cb7bc09
Fix Clippy Warnings (#1300) 2023-12-16 13:54:38 -08:00
Sébastien Crozet 469390f4b9 Check norm_squared instead of mangnitude. 2023-11-12 23:12:52 +01:00
Rasmus Brönnegård 7ea9ecee08 Test for axes with zero magnitude 2023-11-09 01:20:44 +01:00
Rasmus Brönnegård b6e094c82f Fix spelling in givens.rs 2023-11-09 00:48:13 +01:00
Bruce Mitchener 1d9a4bf6ec clippy: Fix needless_borrow warnings. 2023-08-19 00:36:24 +07:00
Sébastien Crozet 12cd98ad64
Merge pull request #1199 from utilForever/dev
Correct minor typos
2023-04-07 16:19:31 +02:00
Edgar Geier 171e92bc20
Remove unnecessary parentheses 2023-03-06 23:41:04 +01:00
Chris Ohk fd97a82926 fix: Correct minor typos 2023-02-01 15:48:06 +09:00
Sébastien Crozet 711ac67da9 Deplecate Dynamic and Dynamic::new 2023-01-14 16:22:40 +01:00
Sébastien Crozet 9e5854034c
Merge pull request #1192 from fortify-iq/ln-determinant
Add ln_determinant to Cholesky
2023-01-14 14:41:57 +01:00
Hennadii Chernyshchyk ff88fad23c
Remove redundant `T::SimdRealField: Zero` 2023-01-14 13:25:38 +02:00
Hennadii Chernyshchyk f333bb4ba5
Update src/linalg/cholesky.rs
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2023-01-14 13:03:09 +02:00
Sébastien Crozet 5ed215932c Slightly change comment wording. 2023-01-14 12:02:37 +01:00
Maxim Zhiburt 3d31f32251 update try_inverse doc comment 2023-01-14 12:00:52 +01:00
Hennadii Chernyshchyk 598cb4fa8d
Add ln_determinant to Cholesky 2023-01-13 13:14:55 +02:00
Andreas Longva 55c3a9c764 Formatting 2022-11-14 16:43:47 +01:00
Andreas Longva 34f4537376 Use view* instead of slice* methods in src/ 2022-11-14 14:14:42 +01:00
Andreas Longva 7d5097b0b2 Remove use of deprecated *Slice aliases in nalgebra 2022-11-14 09:33:08 +01:00
YuhanLiin 1acd48f6f1 Address review comments 2022-03-09 21:04:43 -05:00
YuhanLiin 325618ba22 Fix SVD instability bug 2022-03-09 02:13:12 -05:00
Sébastien Crozet c0f8530d5e
Merge pull request #1055 from dimforge/fix-pow
Fix Matrix::pow and make it work with integer matrices
2021-12-31 09:57:56 +01:00
Sébastien Crozet 99ac8c4032
Merge pull request #1050 from metric-space/polar-decomposition-take-2
Take-2 of polar-decomposition
2021-12-31 09:57:08 +01:00
Sébastien Crozet d806669cc7 Fix Matrix::pow and make it work only with positive exponents 2021-12-30 23:03:43 +01:00
Sébastien Crozet cc10b67dd1 Add Matrix::try_polar that returns Option and make Matrix::polar not return Option 2021-12-30 22:15:04 +01:00
metric-space dbaefed8d1 Fix doc typos 2021-12-26 21:05:42 -05:00
metric-space ac94fbe831 Add polar decomposition method to main matrix decomposition interface
Add one more test for decomposition of polar decomposition of rectangular matrix
2021-12-26 21:01:05 -05:00
Leon 20a86d6613
doc fix: QR -> LU 2021-12-22 19:10:55 +00:00
metric-space 6ac6e7f75e First compiling commit for take-2 of polar-decomposition:
Code inspired by this thread: https://github.com/dimforge/nalgebra/pull/656
Main person behind this is LucasCampos
2021-12-22 00:12:27 -05:00
Sébastien Crozet e0a1b1bc34 Fix the special-case for 3x3 Real SVD 2021-12-09 11:52:37 +01:00
Sébastien Crozet 49e9ceea30 Add dedicated implementations of SVD for 2x2 and 3x3 real matrices. 2021-11-26 17:45:42 +01:00
Christopher Gundler 24d29c4de3 Allow sorting SVD according to singular values 2021-11-08 10:27:53 +01:00
Max Verevkin ad8250c361 exp.rs: factorial(): use precomputed factorial array 2021-09-21 23:14:42 +03:00
Sébastien Crozet 654eca7f80
Merge pull request #979 from Fuuzetsu/cholesky-lax
Allow setting Cholesky field directly; more lax decomposition method
2021-09-17 05:16:39 -07:00
Mateusz Kowalczyk fc3526b58a
Allow fallback value for Cholesky decomposition
This is useful in case where the values are very close to zero or
possibly even slightly negative. This can quite easily happen due to
numerical errors.

A common strategy is to replace these values with a small epsilon value
that keeps the matrix SPD. Some libraries even do this by default (such
as https://github.com/STOR-i/GaussianProcesses.jl/issues/1).

We point the user to `LU` decomposition and also make it clearer that
the method is basically a hack. The public method no longer takes an
`Option` which didn't really make sense. A private method is used to not
repeat implementation in `new`.
2021-09-03 09:01:04 +09:00
Mateusz Kowalczyk a4c2ca941d
Allow constructing Cholesky struct directly
This is useful if there the data for the matrix comes from elsewhere,
such as a custom algorithm. One such use-case can be seen
https://github.com/nestordemeure/friedrich/issues/43 where we do special
handling for the try_sqrt or is_zero cases that would normally fail the
decomposition in `Cholesky::new()`.
2021-09-03 09:01:04 +09:00
Rémi Lauzier ea9a9e8b7f
Fix some clippy warnings 2021-08-28 12:05:21 -04:00
Sébastien Crozet dd6c40016e Remove the Copy requirement from SimdRealField. 2021-08-04 17:34:25 +02:00
Sébastien Crozet 8c6ebf2757 Implement the single-allocator-trait approach. 2021-08-02 18:41:46 +02:00
Sébastien Crozet d34fed45bc Merge branch 'dev' into ub3 2021-08-02 18:40:33 +02:00
Violeta Hernández 2243a11e89 Added some derives 2021-07-29 12:33:45 -05:00
Rémi Lauzier c35f792b4f
Fix some warnings 2021-07-27 19:24:55 -04:00
Rémi Lauzier ed6b34a0d6
Fix rust_2018_idioms warnings 2021-07-25 13:18:21 -04:00
Violeta Hernández 22b657f566 First draft of `Owned` overhaul 2021-07-19 18:00:40 -05:00