Commit Graph

311 Commits

Author SHA1 Message Date
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
b2dadffcf2
Merge pull request #864 from vks/idiomatic-rand
More idiomatic use of Rand
2021-04-11 13:52:48 +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
Vinzent Steinberg
c8fe49b1e9 Add some comments about random variates 2021-04-10 03:36:21 -03:00
Vinzent Steinberg
bbe1d0cd56 Improve error message for cargo test
There is a custom compiler error, hinting that the "debug", "compare"
and "rand" feature are required for compiling and running the tests.
However, this error was not displayed when running `cargo test` due to
other compilation errors taking precedence.

This is now avoided by just not compiling the integration tests when the
necessary features are not enabled.
2021-04-10 00:48:58 -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
Crozet Sébastien
ff27daf044 Enable rand for tests. 2021-03-02 12:37:00 +01:00
Crozet Sébastien
2e16057e7b Fix some tests requiring a square matrix. 2021-03-01 10:02:45 +01:00
Crozet Sébastien
74f4b0ba4d nalgebra-lapack: run tests with proptest instead of quickcheck. 2021-02-28 18:39:18 +01:00
Crozet Sébastien
6cfd2bca14 Use proptest for all nalgebra tests. 2021-02-28 17:52:14 +01:00
Crozet Sébastien
aeb9f7ea39 Add a matrix.udu() method to compute the UDU decomposition. 2021-02-25 15:49:24 +01:00
Crozet Sébastien
ab0d335b61 Fix tests for the UDU decomposition. 2021-02-25 15:48:44 +01:00
Christopher Rabotin
f6c1aeb07f UDU: add panic test for non symmetric matrix
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
7a49b9eeca UDU: d now stored in VectorN instead of MatrixN
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
a8d40423ea Fixed UDU algorithm
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
d534c3bf9d Trying to break the test to make sure it works
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
8dda6714b5 Untested UDU implementation
Pushing to trigger build

Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Sébastien Crozet
fa2e025a1e
Merge pull request #824 from tpdickso/dual_quaternion
Implement additional `DualQuaternion` ops and `UnitDualQuaternion`
2021-02-25 15:46:34 +01:00
Sébastien Crozet
bc6faa22f3
Merge pull request #797 from Recmo/remco/feat/double-ended-iter
impl DoubleEndedIterator for {MatrixIter, MatrixIterMut}
2021-02-25 15:46:11 +01:00
Sébastien Crozet
06f92ad1e3
Merge pull request #613 from russellb23/dev
QR factorizatio nwith column pivoting
2021-02-25 15:45:58 +01:00
Remco Bloemen
59f4e8a7d4 Remove dbg statement 2021-02-25 13:31:16 +01:00
Remco Bloemen
dd31f09105 Test reverse 2021-02-25 13:31:16 +01:00
Remco Bloemen
dcd87287bf Add DoubleEndedIterator test 2021-02-25 13:31:16 +01:00
Sébastien Crozet
adc82845d1
Merge pull request #823 from Andlon/sparse-rework
Sparse rework: nalgebra-sparse
2021-02-25 12:58:28 +01:00
Crozet Sébastien
308d95386e Fix all tests and the ColPivQR::solve. 2021-02-25 12:06:04 +01:00
russellb23
63a34528e0 Added test for QR factorization and fixed unpack issue 2021-02-25 11:31:37 +01:00
Crozet Sébastien
7d5cc4912d Update cargo badge and categories. 2021-01-29 13:33:37 +01:00
Terence
8c52e4dfdc rustfmt 2021-01-28 19:29:12 -05:00
Terence
ac92e68486 add new operators 2021-01-28 19:27:40 -05:00
Terence
ecda74f6b2 clippify 2021-01-28 18:50:34 -05:00
Terence
388b77108e rustfmt 2021-01-28 18:46:14 -05:00
Terence
6be0365203 add integration test 2021-01-28 18:45:34 -05:00
Andreas Longva
5dfe06897f Rename nalgebra/proptest to /proptest-support
This gives us some freedom in the future, in case we need
additional dependencies for the proptest integration.
2021-01-26 09:49:01 +01:00
Andreas Longva
402de4d045 Move nalgebra proptest slow tests into slow submodule
This way it's easier to keep track of what imports are only
necessary for the slow tests.
2021-01-26 08:57:47 +01:00
Andreas Longva
f909638bf4 Designate exhaustive matrix proptest as slow-tests
The slow-tests feature flag is intended to be used for tests
that take substantially more time to run than other unit tests.
2021-01-26 08:57:47 +01:00
Andreas Longva
cbef37ed9c Fix proptest functionality test
The previous test claimed to verify that all possible outputs
are sampled, but it didn't. This commits fixes this issue
by actually computing all possible combinations.
However, to accomplish this we needed to add itertools as a test
dependency. Otherwise we'd have to implement our own way of
generating the Cartesian product of an arbitrary number
of sets.
2021-01-26 08:57:47 +01:00
Andreas Longva
f9ea2b4471 Initial proptest implementation for nalgebra
This introduces functionality for creating strategies for matrices and
vectors, as well as an implementation of Arbitrary.

Strategies for the geometric types (Point3, Quaternion etc.) are not
currently part of this contribution.

The current strategy implementation for matrices has some limitations
that lead to suboptimal shrinking behavior. This is documented in the
module-level docs, with some additional comments in the code.
2021-01-26 08:57:47 +01:00
Chinedu Francis Nwafili
b9513257b8
Serialize DQ to [N;8]
Closes #816
2020-12-18 12:19:38 -05:00
Sébastien Crozet
88145b7f8c
Merge pull request #814 from dimforge/quaternion_partial_eq_fix
Fix the PartialEq impl for quaternions.
2020-12-18 12:29:38 +01:00
Crozet Sébastien
b15a274a14 Add workaround for the deserialization of a matrix containing an enum. 2020-12-18 11:54:56 +01:00
Crozet Sébastien
67603be6ed Fix the PartialEq impl for quaternions.
The double-covering property should only be taken into account for `UnitQuaternion` instead of `Quaternion` itself.
2020-12-18 11:38:33 +01:00
Crozet Sébastien
57723ef8fb Run cargo fmt. 2020-11-20 17:52:32 +01:00
Andreas Longva
93eddc2120 Add example to compile_error message 2020-11-16 14:13:17 +01:00
Andreas Longva
a4fa3f9c1b Fail test compilation if mandatory features are missing 2020-11-16 11:36:54 +01:00
Crozet Sébastien
e852df6124 Add sections for most Matrix methods. 2020-11-15 16:57:49 +01:00
Crozet Sébastien
d7cb138e22 Fix warnings. 2020-10-25 16:03:07 +01:00
Sébastien Crozet
2ab82befe4
Merge pull request #631 from Andlon/matrixcompare
Basic matrixcompare functionality
2020-07-17 01:10:04 -07:00
danielschlaugies
f9f7169558
Add matrix exponential for complex matrices (#744)
Added matrix exponential for complex matrices.
2020-07-16 10:29:52 +02:00
Adam Nemecek
1cf7d12695 unrolled new_nonuniform_scaling_wrt_point 2020-07-05 13:29:08 -07:00
Adam Nemecek
6a1c4f84af cargo fmt 2020-07-02 10:31:30 -07:00
Adam Nemecek
4653f772bd added new_nonuniform_scaling_wrt_point to Matrix3 & Matrix4 2020-07-02 10:16:18 -07:00
Andreas Longva
9196759bc2 Improve matrixcompare example 2020-06-29 19:03:20 +02:00
Andreas Longva
f6730dac1f Basic matrixcompare functionality 2020-06-29 18:50:19 +02:00
sebcrozet
0be9a07f8b Use the #[rustfmt::skip] attribute instead of rustfmt_skip. 2020-06-07 09:30:21 +02:00
Max Orok
a50e567fcd Fix alga cfg gate for some quickcheck tests. 2020-04-20 10:06:38 -04:00
Fredrik Jansson
e914afe2af Added support for dynamic matrices 2020-04-12 11:59:06 +02:00
Fredrik Jansson
c7d9e415ce Converted tests to use relative_eq 2020-04-07 09:55:58 +02:00
Fredrik Jansson
dbbf87a3dd Rebased against dev 2020-04-07 09:44:06 +02:00
Fredrik Jansson
c0a6df55b1 Addition of matrix exponent for static size matrices. 2020-04-07 09:41:32 +02:00
sebcrozet
f782060e99 Fix trailing commas in tests. 2020-04-05 20:36:26 +02:00
sebcrozet
bbb3be512e Run cargo fmt. 2020-04-05 18:49:48 +02:00
sebcrozet
691f58b622 Fix compilation of tests. 2020-04-05 18:33:03 +02:00
sebcrozet
b1857e6a36 Fix compilation of tests. 2020-03-21 23:44:24 +01:00
sebcrozet
f8cd26cfa9 Replace alga by simba. 2020-03-21 12:16:46 +01:00
S.Brandeis
4d97447cbd Add type annotations in serde tests 2020-03-02 12:45:38 +01:00
S.Brandeis
703ba3e716 Refactor var names and add symmetric assert_eq!()s in test; add TODO 2020-03-02 12:45:38 +01:00
S.Brandeis
12c2efdb66 Separate test for shape mismatch and for PartialEq on different types 2020-03-02 12:45:38 +01:00
S.Brandeis
215df7948e Modify PartialEq test to take into account typenum UInt dimensions 2020-03-02 12:45:38 +01:00
S.Brandeis
35eafa0337 Add unit test for more general PartialEq trait impl. for Matrix type 2020-03-02 12:45:38 +01:00
Sébastien Crozet
5a0ee23e3b Fix Vector::axpy for noncommutative cases (#648)
Fix Vector::axpy for noncommutative cases
2020-03-02 12:45:37 +01:00
Sébastien Crozet
ef3406cc8f Cholupdate (#673)
Cholupdate
2020-03-02 12:45:37 +01:00
Jakub Konka
e1c8e1bccf Fix Vector::axpy for noncommutative cases
One example would be performing simple matrix multiplication
over a division algebra such as quaternions.
2020-03-02 12:45:37 +01:00
sebcrozet
b96159aab3 Fix Cholesky for no-std platforms. 2020-03-02 12:45:36 +01:00
Nestor Demeure
59c6a98615 finished cleaning 2020-03-02 12:45:36 +01:00
Nestor Demeure
f54faedc32 tests pass, needs cleanup 2020-03-02 12:45:36 +01:00
Nestor Demeure
b29231cf7b found uneeded storagemut 2020-03-02 12:45:36 +01:00
Nestor Demeure
cfa7bbdc7c remove column is now working 2020-03-02 12:45:36 +01:00
Nestor Demeure
516155025a code cleaned 2020-03-02 12:45:36 +01:00
Nestor Demeure
7347d467ae rank update passed tests 2020-03-02 12:45:36 +01:00
Nestor Demeure
16154f163a added real constraint on sigma 2020-03-02 12:45:36 +01:00
Nestor Demeure
45e6ac7c2a test is now correct 2020-03-02 12:45:36 +01:00
Nestor Demeure
5942a2a125 got test to compile 2020-03-02 12:45:36 +01:00
Nestor Demeure
cc478c6c6d added test for update 2020-03-02 12:45:36 +01:00
Andreas Longva
2f77d73226 Generalize From<_> for MatrixSlice(Mut) to allow different strides 2020-03-02 12:45:35 +01:00
Andreas Longva
a05aa313da Implement From<&Matrix> for MatrixSlice 2020-03-02 12:45:35 +01:00
sebcrozet
be41cb96e8 GEMM on empty matrices: properly take the beta parameter into account. 2019-10-28 14:15:03 +01:00
sebcrozet
f9f7ddd08f Add test for empty matrix tr_mul. 2019-10-28 14:15:03 +01:00
sebcrozet
e30db9e8b1 Add test for empty matrix multiplication. 2019-10-28 14:15:03 +01:00
sebcrozet
cfb654240c Matrix::transform_point: correctly take the normalization term into account.
Fix #640
2019-08-27 22:05:28 +02:00
Stefan Mesken
3baefb1319 Allow the removal of multiple rows/columns given an array of indices. #530 2019-08-27 22:05:28 +02:00
sebcrozet
dda41c1508 Add tests for serialization of 2D transformations.
Fix #320.
2019-08-27 22:05:28 +02:00
sebcrozet
bb06701eff Fix the return type of convolve_same to match the documentation. 2019-03-31 17:04:20 +02:00
sebcrozet
18b9f82042 Fix warnings. 2019-03-31 13:32:26 +02:00
sebcrozet
38ef0cbf7b Merge branch 'dev' into complex
# Conflicts:
#	src/base/ops.rs
#	src/geometry/isometry.rs
#	src/geometry/quaternion.rs
#	src/geometry/quaternion_construction.rs
#	src/geometry/rotation.rs
#	src/geometry/similarity.rs
#	src/geometry/transform.rs
#	src/geometry/translation.rs
#	src/geometry/unit_complex.rs
2019-03-31 10:48:59 +02:00
sebcrozet
f9995f1fcc Fix tests. 2019-03-31 09:12:54 +02:00
sebcrozet
4ef4001836 Rename Real to RealField. 2019-03-25 11:21:41 +01:00
sebcrozet
5b28c39fa7 Rename Complex to ComplexField. 2019-03-25 11:19:36 +01:00
sebcrozet
3cbe60523a 2018 edition. 2019-03-23 14:33:47 +01:00
sebcrozet
921a05d523 Implement some BLAS opertaions involving adjoint. 2019-03-23 11:48:12 +01:00