Commit Graph

230 Commits

Author SHA1 Message Date
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
Violeta Hernández b74be8499f Miscellaneous improvements 2021-07-17 21:43:50 -05:00
Violeta Hernández 10b5dc9bb6 Many miscellaneous improvements throughout 2021-07-17 20:19:20 -05:00
Violeta Hernández 7e1b2f81b3 Fixed some more blatant issues 2021-07-17 13:53:01 -05:00
Violeta Hernández c01d591478 We have reached compilation! 2021-07-17 13:01:03 -05:00
Violeta Hernández 9a528e23b9 Almost! 2021-07-17 04:36:14 -05:00
Violeta Hernández a6b8dd6d78 Checkpoint #10 2021-07-17 02:52:57 -05:00
Violeta Hernández 87fe2b30df Checkpoint #9 2021-07-16 23:17:56 -05:00
Violeta Hernández df9b6f5f64 blas.rs works now! 2021-07-15 23:56:58 -05:00
Violeta Hernández 8d10e69e33 Finally figured out some trait nitty-gritty 2021-07-14 13:24:27 -05:00
Violeta Hernández 1a78b00476 Checkpoint #1 2021-07-14 04:25:16 -05:00
Rémi Lauzier 78da5209e9
Fix some clippy warnings 2021-07-03 23:43:45 -04:00
Violeta Hernández 281b140365
Fix most clippy warnings 2021-06-18 09:45:37 +02:00
Sébastien Crozet 38add0b00d
Fix potential undoundness with Storage::as_slice and Storage::as_mut_slice (#905) 2021-06-17 09:46:49 +02:00
Violeta Hernández 7643a24cc1
`Result<(), ()>` to `bool` (#916) 2021-06-17 09:44:06 +02:00
Malte Tammena e1fe76235f Normalize `#[must_use]` hints 2021-06-07 16:44:59 +02:00
Malte Tammena 9fb963017f Simplify default `#[must_use]` annotation 2021-06-07 16:34:03 +02:00
Malte Tammena 39aa52d019 Add must_use annotations in src/**/*.rs 2021-06-06 14:46:36 +02:00
Malte Tammena d85c10a73c Add some missing question marks 2021-06-06 11:34:29 +02:00
Malte Tammena 925fc1edd7 Annotate functions with #[must_use] where appropriate 2021-06-06 11:28:12 +02:00
Crozet Sébastien 95b021dbfb Don't enable serde by default.
Don't enable `serde/std` by default.
Add a `serde-serialize-no-std` feature to enable serde without its default features.
2021-04-12 12:14:16 +02:00
Crozet Sébastien cc4427e52b Make matrix power work for non-owned matrices. 2021-04-11 14:07:06 +02:00
Crozet Sébastien 24d546d3b6 Rename generic parameter N -> T 2021-04-11 13:57:54 +02:00
Crozet Sébastien 35ec135d2c Fix compilation after rebase. 2021-04-11 13:53:45 +02:00
Crozet Sébastien d17088398a Replace generic-array with a regular array based on min-const-generics. 2021-04-11 13:53:45 +02:00
Sébastien Crozet 2ebba30117
Merge pull request #861 from jturner314/fix-cholesky-det-complex
Fix Cholesky::determinant for complex elements
2021-04-11 13:49:35 +02:00
Sébastien Crozet b9a524427b
Merge pull request #859 from OfficialURL/dev
Added pow functions
2021-04-11 13:44:06 +02:00
Violeta Hernández 341091f647 `pow_mut` now returns `Result`. 2021-04-10 00:12:26 -05:00