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
Crozet Sébastien
c410a32c82
Fix doc-tests.
2020-10-25 14:15:26 +01:00
Crozet Sébastien
93f361cba8
Add missing slerp implementations.
2020-10-25 14:00:47 +01:00
Crozet Sébastien
097ae44efa
Add `lerp_slerp` to isometries for interpolation.
2020-10-25 11:39:27 +01:00
Crozet Sébastien
9c93a58b5d
Add Vector::ith_axis to build an unit vector with its i-th component set to 1.
2020-10-25 11:25:38 +01:00
Crozet Sébastien
55689c238a
Add the conversion of a translation to an isometry.
2020-10-25 11:25:20 +01:00
Crozet Sébastien
503040b8bc
Add Point.map(f) and Point.apply(f).
2020-10-25 11:25:20 +01:00
Crozet Sébastien
a623e63d08
Add the conversion of an array of four elements to a quaternion.
2020-10-25 11:25:20 +01:00
Crozet Sébastien
3d82c4335e
Add inverse_transform_unit_vector to rotations and isometries.
2020-10-25 11:25:20 +01:00
Sébastien Crozet
eb94084760
Merge pull request #756 from dayrover/cholesky
...
Remove unnecessary Trait bound DimSub<Dynamic> in fn cholesky(self)
2020-10-24 18:23:03 +02:00
Sébastien Crozet
c240923abb
Merge pull request #754 from TheZoq2/patch-1
...
Update version in docs header
2020-10-24 18:22:36 +02:00
Crozet Sébastien
4da2bfcb71
Add missing dot-product dimension check.
...
Fix #776
2020-10-13 17:29:00 +02:00
Crozet Sébastien
343fb2f24f
Ensure Isometry implements Copy when targeting no-std.
...
Fix #774 .
2020-10-13 10:12:14 +02:00
Philippe Renon
822f114254
perspective: fix copy/paste error
2020-10-11 11:57:49 +02:00
Philippe Renon
0b0f248267
clippy: fix #identity_op
2020-10-11 11:42:22 +02:00
Philippe Renon
1624a87efa
clippy: fix #needless_return
2020-10-11 11:42:22 +02:00
Philippe Renon
6293d3375b
clippy: fix #redundant_field_names
2020-10-11 11:42:22 +02:00
Philippe Renon
fb15658cc9
fix typo: apsect should be aspect
2020-10-11 11:42:22 +02:00
Michael Morgan
c6d5d8a1a6
Remove unsafe statement in Point::deref by forwarding to Vector.
...
Since both impls are #[inline], this should have no performance impact.
2020-10-09 15:27:02 -04:00
Sébastien Crozet
a8f73cb7b2
Run cargo fmt.
2020-08-25 20:47:07 +02:00
Sébastien Crozet
46d1cf2231
Add a libm and libm-force feature to transitively enable the corresponding simba feature.
2020-08-25 20:46:35 +02:00
sebcrozet
7c69cbf326
Don't depend on serde_derive explicitly.
2020-08-25 20:46:04 +02:00
Sébastien Crozet
6300d34356
Add the ::ith constructor for vectors.
...
This initializes a vectors to zero except the i-th element set to a given value.
2020-08-25 20:46:04 +02:00
Michael Stevens
0a0799f76a
Remove unnecessary Trait bound DimSub<Dynamic> in fn cholesky(self)
2020-08-03 18:20:26 +02:00
Frans Skarman
0f6c0e5233
Update version in docs header
2020-07-31 14:14:39 +02: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
CGMossa
bc70258e5c
Why Option<_> ( #746 )
...
Add a comment about why `UnitQuaternion::rotation_between` returns an Option.
2020-07-16 09:27:06 +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
Jenan Wise
85a64fb517
More verbose DMatrix dim asserts where possible.
...
Previously, most dimension mismatch asserts used raw `assert!` and did
not include the mismatching dimensions in the panic message. When using
dynamic matrices, this led to somewhat-opaque panics such as:
```rust
let m1 = DMatrix::<f32>::zeros(2, 3);
let m2 = DMatrix::<f32>::zeros(5, 10);
m1 + m2 // panic: Matrix addition/subtraction dimensions mismatch.
```
This patch adds dimension information in the panic messages wherever
doing so did not add additional bounds checks, mostly by simply changing
`assert!(a == b, ...)` cases to `assert_eq!`. After:
```rust
// panic: assertion failed: `(left == right)`
// left: `(2, 3)`,
// right: `(5, 10)`: Matrix addition/subtraction dimensions mismatch.
```
Note that the `gemv` and `ger` were not updated, as they are called from
within other functions on subset matricies -- e.g., `gemv` is called
from `gemm` which is called from `mul_to` . Including dimension
information in the `gemv` panic messages would be confusing to
`mul` / `mul_to` users, because it would include dimensions of the column
vectors that `gemm` passes to `gemv` rather than of the original `mul`
arguments. A fix would be to add bounds checks to `mul_to`, but that may
have performance and redundancy implications, so is left to another
patch.
2020-06-22 17:18:53 -07:00
sebcrozet
2c2d1e4f07
Run cargo fmt.
2020-06-07 09:07:25 +02:00
Sébastien Crozet
3359e25435
Cholesky: add unchecked construction compatible with AoSoA SIMD.
2020-06-07 09:05:10 +02:00
Sébastien Crozet
423b4b27b0
Merge pull request #585 from fusion-engineering-forks/pr-default
2020-06-07 08:58:47 +02:00
Chris Hodapp
7363caba17
Fix doc typo (v is right-singular vectors, not left)
2020-04-21 10:23:00 -04:00
sebcrozet
6dc739b70b
Remove unused allocator bound.
2020-04-21 10:37:14 +02:00
sebcrozet
f4c0897764
Fix compilation of matrix exponential when targetting no-std.
2020-04-21 10:35:20 +02:00
Fredrik Jansson
583a8fb110
Removed unsafe immutable hack
2020-04-12 13:27:11 +02:00
Fredrik Jansson
e914afe2af
Added support for dynamic matrices
2020-04-12 11:59:06 +02:00
Fredrik Jansson
0a3ee99cdb
Changed dimension name R to D
...
Changed N::from_x to crate::convert
2020-04-12 11:46:00 +02:00
Fredrik Jansson
4ec94408b5
Pub use of exp in the linalg module
2020-04-07 09:41:32 +02:00
Fredrik Jansson
b3ef66fd14
Fixed bug in onenorm_matrix_power_norm
2020-04-07 09:41:32 +02:00
Fredrik Jansson
e156561677
one_norm is not a public function
2020-04-07 09:41:32 +02:00
Fredrik Jansson
2696ffd7a1
Fixed bug by introducing one norm
2020-04-07 09:41:32 +02:00
Fredrik Jansson
c0a6df55b1
Addition of matrix exponent for static size matrices.
2020-04-07 09:41:32 +02:00
sebcrozet
677f355143
Run rustfmt.
2020-04-05 23:19:10 +02:00
Sébastien Crozet
b81aed767f
Merge pull request #713 from rustsim/soa_simd
...
Switch to Simba and make the base and geometry modules mostly SIMD AoSoA friendly.
2020-04-05 21:16:48 +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
2c03353b30
Add missing docs.
2020-04-05 18:02:03 +02:00
sebcrozet
c5dad7f960
Re-add all the alga trait impls behind a feature.
2020-04-05 17:53:27 +02:00
sebcrozet
191ccbf551
Fix warnings and compilation with the `arbitrary` feature.
2020-04-05 17:18:50 +02:00
sebcrozet
d48a644d5c
Add missing implementatino of SimdValue for UnitQuaternion.
2020-04-05 16:35:26 +02:00
sebcrozet
8f662a1a61
Rename translation simba impl file.
2020-04-05 16:35:16 +02:00
Chia-Sheng Chen
65bc037b5d
Supplement the document of fn as_ptr
2020-04-03 17:56:08 +08:00
Chia-Sheng Chen
b996a6f0ce
Supplement the document of fn vector_to_matrix_index
2020-04-03 17:39:49 +08:00
Fan Jiang
0e69df2999
Update format
2020-04-01 01:14:32 -04:00
Fan Jiang
451c61e293
Add TODO notice and reference to issue
2020-03-31 17:04:10 -04:00
Fan Jiang
526dac1914
Be more specific on what is happening here
2020-03-31 17:03:07 -04:00
Fan Jiang
74bfd9cad6
Change to the recommended style of using MaybeUninit
2020-03-31 16:50:26 -04:00
Sébastien Crozet
a095a7dfcd
Re-add some missing transform multiplications.
2020-03-24 19:06:28 +01:00
Sébastien Crozet
81bb9e94f8
Re-add orthogonalization and subspace basis computation.
2020-03-24 19:06:05 +01:00
Sébastien Crozet
8ef46d62cb
Re-add inf/sup.
2020-03-24 19:05:47 +01:00
Sébastien Crozet
cdbc9da46c
Add From<[...; .]> impls for AoSoA Isometry and Similarity.
2020-03-24 10:16:31 +01:00
sebcrozet
b3f347e45e
Add From<[...; .]> impls for all SIMD geometric sructures up to the isometry (excluded).
2020-03-23 09:16:01 +01:00
sebcrozet
b1857e6a36
Fix compilation of tests.
2020-03-21 23:44:24 +01:00
sebcrozet
cbcf4d7c27
Make Isometry, Unit/Quaternion, Rotation, Similarity, and UnitComplex partially compatible with AoSoA.
2020-03-21 23:35:41 +01:00
sebcrozet
f8cd26cfa9
Replace alga by simba.
2020-03-21 12:16:46 +01:00
Sébastien Crozet
002e735c76
Make blas, matrix, norm, and ops.rs compatible with SoA Simd.
2020-03-17 17:58:36 +01:00
Fan Jiang
fe75c60325
Fix warnings on latest rustc
2020-03-10 18:20:52 -04:00
Sébastien Crozet
155ba3a50a
Merge pull request #698 from rustsim/try_set_magnitude
...
Add a method to set the magnitude of a vector.
2020-03-02 12:45:39 +01:00
Sébastien Crozet
1d64de3822
Merge pull request #609 from aplund/dev
...
Refactor row_sum() and column_sum() to cover more cases.
2020-03-02 12:45:39 +01:00
sebcrozet
b09d9770f7
Add a method to set the magnitude of a vector.
2020-03-02 12:45:39 +01:00
Sébastien Crozet
a67c451ae5
Merge pull request #607 from cauthmann/dev
...
Add #[must_use] to all functions with a _mut variant (#598 )
2020-03-02 12:45:39 +01:00
nnmm
54f1c71742
Small docs improvements
2020-03-02 12:45:39 +01:00
Ilya Epifanov
a62d9d1ad1
GivensRotation::new() should default to (I, 0)
2020-03-02 12:45:38 +01:00
S.Brandeis
6d608cb99f
Revert "Broader PartialEq implementation for types implementing Dim trait"
...
This reverts commit 6f5c9c0f
2020-03-02 12:45:38 +01:00
S.Brandeis
08d990f276
Make shape check a one-liner in impl PartialEq for Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
d35ef06f44
Remove unnecessary PartialEq trait use in PartialEq impl for Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
403e63dc5e
Remove trailing whitespace
2020-03-02 12:45:38 +01:00
S.Brandeis
8a3f6a12cd
Refactor and move named_dimension! macro
2020-03-02 12:45:38 +01:00
S.Brandeis
50ea55e877
Modify PartialEq for Matrix to allow comparison with all types of Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
2b8410e08b
Fix bug - PartialEq for Matrix no longer panics when shapes do not match
2020-03-02 12:45:38 +01:00
S.Brandeis
39a433c0e7
Broader PartialEq implementation for types implementing Dim trait
2020-03-02 12:45:38 +01:00
Sébastien Crozet
12fa938516
Merge pull request #686 from rustsim/fix_vector_slerp
...
Fix slerp for regular vectors.
2020-03-02 12:45:38 +01:00
sebcrozet
e911bfc7db
Fix doc-test for vector slerp.
2020-03-02 12:45:38 +01:00
sebcrozet
5f4a0c7b13
Fix slerp for regular vectors.
2020-03-02 12:45:38 +01:00