Commit Graph

219 Commits

Author SHA1 Message Date
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
Violeta Hernández
81f2fc38d7 Use mul_to instead of square_buf
Didn't realize that this was something that was already implemented.
2021-04-09 23:59:22 -05:00
Violeta Hernández
15a63cb892 Memory improvements, extra comments.
The result of `multiplier ^ 2` is now written into a single buffer.
2021-04-09 23:43:59 -05:00
Vinzent Steinberg
260ee54288 Disable some tests if "rand" feature is disabled
This avoids some misleading errors for `cargo test`.
2021-04-10 01:00:12 -03:00
Jim Turner
cea3bdc8e5 Fix Cholesky::determinant for Complex elements
The previous implementation was correct only for real elements. The
Cholesky decomposition is `L L^H`, so the determinant is `det(L) *
det(L^H)`. Since `L` is a triangular matrix, `det(L)` is the product
of the diagonal elements of `L`. Since `L^H` is triangular and its
diagonal elements are the conjugates of the diagonal elements of `L`,
`det(L^H)` is the conjugate of `det(L)`. So, the overall determinant
is the product of the diagonal elements of `L` times its conjugate.
2021-04-09 14:28:16 -04:00
Jim Turner
50fed194f4 Add determinant method to Cholesky 2021-04-07 23:10:19 -04:00
Violeta Hernández
06b657ad49 Added pow_mut.
Actually, I think this will do.
2021-04-05 12:32:12 -05:00
Violeta Hernández
ab85766b5a Added pow function.
I'll try adding some unchecked and in place variants soon.
2021-04-05 12:17:49 -05:00
Crozet Sébastien
6cfd2bca14 Use proptest for all nalgebra tests. 2021-02-28 17:52:14 +01:00
Crozet Sébastien
7b6b3649f2 Run cargo fmt. 2021-02-25 16:20:11 +01:00
Crozet Sébastien
6699039fec Fix rebase-induced compilation error. 2021-02-25 15:51:13 +01:00
Crozet Sébastien
aeb9f7ea39 Add a matrix.udu() method to compute the UDU decomposition. 2021-02-25 15:49:24 +01:00