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
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