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
89ca2fe5fb
UDU only supported for Real matrices, not Complex
...
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
4ff4911ac3
Implement requested changes
...
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Chris
06861a9755
Update src/linalg/udu.rs
...
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
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
e9933e5c91
UDU: Expand to Dim from DimName
...
Signed-off-by: Christopher Rabotin <christopher.rabotin@gmail.com>
2021-02-25 15:48:44 +01:00
Christopher Rabotin
5a7ed61e9b
UDU impl: using 0-index nomenclature
...
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
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
21cc428480
Merge pull request #803 from aweinstock314/no_unsound_assume_init
...
Propagate `mem::MaybeUninit` through the return types of `Allocator::…
2021-02-25 15:46:49 +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
69e2ad6a44
Merge pull request #831 from iMplode-nZ/dev
...
Added bytemuck implementations for static storages.
2021-02-25 15:46:28 +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
Crozet Sébastien
a32f41bd41
Fix compilation when targetting no-std.
2021-02-25 15:03:35 +01:00
Crozet Sébastien
bf0f3163ce
Rename some of the variables in dual-quaternion doc-tests.
2021-02-25 14:49:01 +01:00
Crozet Sébastien
162a7ef09c
Fix compilation when the mint or alga features are enabled.
2021-02-25 14:30:04 +01:00
Crozet Sébastien
af448d2c70
Add bytemuck impls to points.
2021-02-25 14:19:20 +01:00
Crozet Sébastien
0b1e6f0b05
Run cargo fmt.
2021-02-25 14:16:57 +01:00
Crozet Sébastien
dc15261ec1
Move the bytemuck impls to GenericArray and add a transitive impl for matrices.
2021-02-25 14:10:34 +01:00
Crozet Sébastien
234e103e4b
Fix compilation of the sparse module.
2021-02-25 13:52:58 +01:00
Avi Weinstock
ee32f7d4cf
Run `cargo fmt`.
2021-02-25 13:42:23 +01:00
Avi Weinstock
cd12422d6f
Change `zero_or_uninitialized_generic` to `unimplemented_or_uninitialized_generic`, and use it instead of manually dispatching on `feature=no_unsound_assume_init` in functions without `N: Zero`.
2021-02-25 13:42:23 +01:00
Avi Weinstock
36a3ac814f
Propagate `mem::MaybeUninit` through the return types of `Allocator::allocate_uninitialized` and `Matrix::new_uninitialized_generic`.
...
Most call sites still invoke UB through `assume_init`. Said call sites instead invoke `unimplemented!()` if the `no_unsound_assume_init` feature is enabled, to make it easier to gradually fix them.
Progress towards #556 .
2021-02-25 13:42:23 +01:00
Remco Bloemen
b25c2aa78c
Fix inner size
2021-02-25 13:31:16 +01:00
Remco Bloemen
d5ca2019a3
impl FusedIterator
2021-02-25 13:31:16 +01:00
Remco Bloemen
eb3d787ed6
Fix inner_size computation
2021-02-25 13:31:16 +01:00
Remco Bloemen
d49af8e8b2
Implement next_back
2021-02-25 13:31:16 +01:00
Remco Bloemen
73d6ba0ca1
Dummy implementation of DoubleEndedIterator
2021-02-25 13:31:16 +01:00
Crozet Sébastien
598c217d75
Move the col_piv_qr method to the decomposition module.
2021-02-25 13:28:42 +01:00
Crozet Sébastien
693e6d0035
Run cargo fmt.
2021-02-25 12:59:14 +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
russellb23
1316133625
Removed unused imports
2021-02-25 11:31:37 +01:00
russellb23
a2f3e1ac26
Inverted sign in householder
2021-02-25 11:31:37 +01:00
russellb23
f8c0195f0f
QR factorization with column pivoting
2021-02-25 11:31:37 +01:00
Crozet Sébastien
bafa1dcd97
Re-export simba::SimdValue.
2021-02-22 14:27:18 +01:00
Crozet Sébastien
478921881f
Add approximate rotation composition for unit-quaternion.
2021-02-22 14:27:08 +01:00
Crozet Sébastien
9d930eb21a
Add a method to cap the magnitude of a vector.
2021-02-22 14:26:40 +01:00
Crozet Sébastien
6139372c38
Add from_basis_unchecked to rotation types.
2021-02-22 14:26:25 +01:00
iMplode nZ
1c0891bbbb
Added bytemuck for Unit and Quaternion.
2021-02-12 15:30:12 -08:00
iMplode nZ
c667b1f9c8
Added bytemuck implementations for static storages.
2021-02-10 20:12:24 -08:00
Crozet Sébastien
fb26d4d0fb
Update the htaml_root_url.
2021-01-29 13:56:40 +01:00
Terence
c408e09e28
update header comment for operators
2021-01-28 19:41:55 -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
Terence
12c259f0b4
Implement additional `DualQuaternion` ops and `UnitDualQuaternion`
...
This implements `UnitDualQuaternion` as an alternative to `Isometry3`
for representing 3D isometries, which also provides the `sclerp`
operation which can be used to perform screw-linear interpolation
between two unit dual quaternions.
2021-01-28 17:25:32 -05:00
Andreas Longva
646f62a293
rustfmt (nalgebra)
2021-01-26 09:49:01 +01: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
b2dbcf3168
Add D=Dynamic default and ::to_range_inclusive for DimRange (nalgebra)
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
Chinedu Francis Nwafili
7ec5d00c3d
Clean up DualQuat bounds
2020-12-18 10:38:19 -05:00
Chinedu Francis Nwafili
89134efc3b
Store DQ as real and dual Quat
2020-12-18 10:09:56 -05:00
Chinedu Francis Nwafili
8036c56fda
Introduce DualQuaternion type
...
This commit introduces the `DualQuaternion` type, in line with the plan
laid out in [#487 ].
[#487 ]: https://github.com/dimforge/nalgebra/issues/487
2020-12-18 09:13:24 -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
Sébastien Crozet
3899d92f5d
Merge pull request #815 from dimforge/isometry_inv_mul
...
Add a dedicated method for computing isometry1.inverse() * isometry2.
2020-12-18 12:08:34 +01:00
Sébastien Crozet
8c615289dc
Merge pull request #813 from dimforge/deserialize_uninit
...
Add workaround for the deserialization of a matrix containing an enum.
2020-12-18 12:06:39 +01:00
Crozet Sébastien
ed74ff7c99
Simplify trait bounds for quaternion indexing.
2020-12-18 12:06:27 +01:00
Crozet Sébastien
60708640d3
Add a dedicated method for computing isometry1.inverse() * isometry2.
...
It is more efficient that way.
2020-12-18 11:55:46 +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
Südi Tamás
b01d01d486
update the version number in the documentation
...
from 0.21 to 0.23
2020-12-16 18:35:13 +01:00
Crozet Sébastien
651d318c26
Add sections to the Unit wrapper documentation
2020-11-21 12:19:04 +01:00
Crozet Sébastien
c1372c3041
Add sections to the UnitComplex documentation
2020-11-21 11:56:32 +01:00
Crozet Sébastien
99ac7a8e08
Add sections to the Rotation documentation
2020-11-21 11:56:32 +01:00
Crozet Sébastien
2a3d98bff8
Matrix, vector, isometry, and point aliases documentation: warn that the reader should take a look at the documentation of the aliased type too.
2020-11-20 17:46:03 +01:00
Crozet Sébastien
cf769522f8
Add sections to the documentations of Isometry and Point.
2020-11-20 17:45:11 +01:00
Crozet Sébastien
857ce13b63
Add DVector::from(Vec).
2020-11-19 16:28:06 +01:00
Philippe Renon
87ee014bd3
clippy: fix clone_on_copy warnings
2020-11-19 12:55:15 +01:00
Philippe Renon
bbc6a28f7d
clippy: fix len_without_is_empty warnings
2020-11-19 12:24:26 +01:00
Philippe Renon
6a5b418fbc
clippy: fix ptr_offset_with_cast warnings
2020-11-19 11:56:58 +01:00
Philippe Renon
f515cffad9
clippy: fix redundant_closure warnings
2020-11-19 11:43:08 +01:00
Philippe Renon
726b8eeecf
clippy: fix or_fun_call warnings
2020-11-19 11:43:08 +01:00
Philippe Renon
74a09c8a5e
clippy: fix ptr_offset_with_cast warnings
...
i.e. use of `offset` with a `usize` casted to an `isize`
2020-11-16 14:59:53 +01:00
Philippe Renon
f1211b0d99
clippy: remove unused imports
2020-11-16 14:46:04 +01:00
Philippe Renon
008c24204e
clippy: fix unreadable_literal warnings
2020-11-16 14:43:36 +01:00
Philippe Renon
de4a067d27
clippy: fix len_zero warnings
2020-11-16 12:11:24 +01:00
Philippe Renon
d577a18a45
clippy: fix or_fun_call warnings
2020-11-16 11:11:58 +01:00
Philippe Renon
5dff493515
clippy: fix just_underscores_and_digits warnings
2020-11-16 11:04:57 +01:00
Philippe Renon
cf54580fac
clippy: fix redundant_field_names warnings
2020-11-16 11:04:56 +01:00
Crozet Sébastien
0521051665
Fix wrong import of Signed an Zero.
2020-11-15 17:44:58 +01:00
Crozet Sébastien
17eb626018
Fix typo.
2020-11-15 17:25:29 +01:00
Crozet Sébastien
f2da993c8b
Reduce matrix and slice aliases depth to 1.
2020-11-15 17:23:46 +01:00
Crozet Sébastien
e852df6124
Add sections for most Matrix methods.
2020-11-15 16:57:49 +01:00
Crozet Sébastien
b8d1ae3a1f
Add aliases for matrices with only one dynamic dimension.
2020-11-13 18:35:23 +01:00
Crozet Sébastien
9a4cf0b69f
Reorganize matrix construction macros.
2020-11-13 18:34:47 +01:00
Crozet Sébastien
4c2192d9e0
Reorganize matrix slice macros.
2020-11-13 18:34:33 +01:00
Crozet Sébastien
45f2fc4f92
Move all matrix decomposition methods under a single impl.
2020-11-13 17:26:47 +01:00
Philippe Renon
04ce8b3f6a
clippy: fix suspicious_op_assign_impl errors (false positives)
2020-10-26 13:09:03 +01:00
Philippe Renon
d990aff44e
clippy: fix clippy::eq_op error (false positive)
2020-10-26 08:56:49 +01:00
Philippe Renon
74f01d2538
clippy: fix suspicious_arithmetic_impl errors (false positives)
2020-10-26 08:49:06 +01:00
Crozet Sébastien
8e483a5434
Fix reshaping test.
2020-10-25 16:31:10 +01:00
Crozet Sébastien
e89a26cbd0
Add doc-tests for reshape_generic.
2020-10-25 16:03:18 +01:00
Crozet Sébastien
5b3da9e2eb
Fix typo in comment.
2020-10-25 16:02:31 +01:00
Nathan Kent
4a6022d9bf
Add methods for in-place reshaping of matrices
...
There are two major additions in this commit. The first is a new storage
trait, `ReshapableStorage`, that can be implemented for storage types
that can be reshaped in-place. I have implemented this for both the
`ArrayStorage` and `VecStorage` types, as they are the most common and
they are just interpretations of a flat list.
The second is a `Matrix::reshape_generic` method that allows matrices to
be in-place reshaped provided that the underlying storage can handle it.
In practice, this means that the standard matrix types (`MatrixMN` and
`DMatrix`) can be resized to any size that has the same element count.
Resizing between array and vector storage is not implemented due to
`Storage` only being implemented for `VecStorage` variants where at
least one dimension is `Dynamic`.
Additionally, only the generic reshape function is added as it can be a
basis for other reshaping functions (see the resizing functions) and I
am not particularly in the mood to implement a variety of reshaping
methods.
2020-10-25 15:37:18 +01:00