Joshua Smith
e52057b8a5
added powf proptest for 4d rotations
2022-03-26 17:18:33 -05:00
YuhanLiin
a27d121a7a
Add regression test for #1072
2022-03-09 21:10:45 -05: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
Ben Kimock
698e130c3b
Remove abomonation support
...
Abomonation has numerous soundness problems which have been
well-documented in its issue tracker for over 2 years. Some of them
could be fixed, but some are fundamental to its design. If a user wants
super-fast ser/de, they should use rkyv.
2022-02-05 17:15:08 -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
metric-space
498d7e3d4c
Semi-unitary test checks for if rows or cols are orthonomal
2021-12-30 21:18:58 -05:00
metric-space
ae6fda7dc7
Change svd to svd_unordered for the method output to be equal
...
Comment out unitary check for now
2021-12-30 21:12:37 -05:00
Sébastien Crozet
fdaf8c0fbe
Add tests for Matrix::pow
2021-12-30 23:03:22 +01:00
Sébastien Crozet
67a82c2c88
Test: minor style fix
2021-12-30 22:28:55 +01:00
Sébastien Crozet
8e0ca439c2
Use proptest for testing the polar decomposition
2021-12-30 22:15:22 +01:00
metric-space
43c1f8fb9d
Increased strength of tests for polar decomposition
2021-12-27 02:12:54 -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
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
88dd5442f3
Add an utility function to check if a slice is sorted in descending order.
2021-12-09 13:32:30 +01:00
Sébastien Crozet
412104fa0a
Add comment about the origin of the failing 3x3 SVD matrix
2021-12-09 13:31:39 +01: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
Sébastien Crozet
10150ec783
Merge pull request #1016 from tpdickso/fix-dual-quaternion-sclerp
...
Don't panic ScLERPing `UnitDualQuaternion` with equal rotation
2021-11-21 17:57:34 +01:00
Christopher Gundler
24d29c4de3
Allow sorting SVD according to singular values
2021-11-08 10:27:53 +01:00
Terence
dfb7b6af22
Don't panic ScLERPing `UnitDualQuaternion` with equal rotation
...
Solves #1013 .
Previously, when screw-linearly interpolating two unit dual quaternions
that had an identical orientation, `try_sclerp` would return `None`, as
the operation would introduce a division-by-zero.
This PR splits out the cases where two unit dual quaternions have an
identical orientation from the cases where they have opposite
orientations. In the case where they have identical orientations, the
operation is well-defined, but the exponential parameterization could
not handle it without introducing NaNs. Therefore, the function detects
this case and simply defaults to linearly interpolating the
translational components and using one of the two inputs' rotation
components.
The case where the inputs have opposite rotations is now detected
separately using the dot product of the real (rotation) parts, which was
already being computed anyway.
Also introduces proptests for these specific scenarios, to avoid any
regression.
2021-10-28 00:02:20 -04:00
Sébastien Crozet
85202f85f7
Merge pull request #986 from Ralith/concise-debug
...
Concise Debug impls
2021-09-25 17:23:14 +02:00
Mateusz Kowalczyk
d50af9dbfb
Add test for Cholesky::new_with_substitute
2021-09-13 09:08:37 +09:00
Benjamin Saunders
0541f13b26
Concise Debug impls
...
Replace the verbose derived (or nearly equivalent) Debug impls for
several newtypes with explicit impls that forward to the inner type,
making readable diagnostics logging much easier.
2021-09-12 10:56:25 -07:00
Sébastien Crozet
148b164aaa
Fix tests
2021-08-04 17:56:57 +02:00
Sébastien Crozet
8c6ebf2757
Implement the single-allocator-trait approach.
2021-08-02 18:41:46 +02:00
Violeta Hernández
4bd13a509a
Fix botched Search + Replace
2021-07-17 13:58:34 -05:00
Violeta Hernández
c01d591478
We have reached compilation!
2021-07-17 13:01:03 -05:00
nathan.eckert
dd1530adc3
Cargo fmt
2021-07-08 14:20:35 +02:00
nathan.eckert
639382ea49
Add failing test higlighting the issue
2021-07-08 11:23:41 +02:00
Violeta Hernández
281b140365
Fix most clippy warnings
2021-06-18 09:45:37 +02:00
Crozet Sébastien
8810b85a2f
Add a point! macro for construction points
...
This macro is similar to the `vector!` macro, except that it builds a point instead of a vector.
2021-05-24 17:53:59 +02:00
Sébastien Crozet
23ac85e896
Merge pull request #886 from Andlon/matrix-macro
...
Matrix macro
2021-05-09 16:52:04 +02:00
Sébastien Crozet
a803271fcc
Merge pull request #889 from dimforge/dvector_deserialize
...
Fix potential unsoundness after deserializing a DVector with a bad number or elements.
2021-05-09 16:50:38 +02:00
Crozet Sébastien
b398a5e189
Re-add conversion between arrays and row vectors.
2021-05-06 18:22:04 +02:00
Crozet Sébastien
5bff5368bf
Manually implement Serialize and Deserialize for VecStorage
2021-05-06 18:16:42 +02:00
Andreas Longva
8552fc8385
Cargo fmt
2021-05-03 13:52:34 +02:00
Andreas Longva
041b8c4b2c
Add macro sanity tests to macros
2021-05-03 13:52:34 +02:00
Andreas Longva
0bde07f95c
Document that feature needs to be enabled, and require macros feature for tests
2021-05-03 13:52:34 +02:00
Crozet Sébastien
73cc9882b2
Fix compilation of nalgebra-lapack
2021-04-12 10:35:35 +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
23a7d7475b
First compiling version after migrating the geometry module to const-generics.
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
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