Commit Graph

1198 Commits

Author SHA1 Message Date
Andreas Longva
eeab4db69a Add nalgebra/macros feature and re-export matrix macros from nalgebra 2021-05-03 13:52:34 +02:00
Andreas Longva
d2c11ad797 Impl DMatrix/DVector::from_vec_storage
These methods enable safe & const construction of DMatrix/DVector from a
given VecStorage.
2021-05-03 13:52:34 +02:00
Andreas Longva
9142dc8f84 Implement SMatrix::from_array_storage and use it in matriX! impl
This allows us to avoid injecting unsafe code into every macro
invocation, which seems desirable.
2021-05-03 13:52:34 +02:00
Chammika Mannakkara
105e894c0a add missing doc tests 2021-05-02 13:50:03 +09:00
Crozet Sébastien
d59d438189 Add more conversion for glam types
Add Isometry3 <-> (Vec3, Quat)
Add Isometry2 <-> (Vec3, Quat)
Add Translation2/3/4 <-> Vec2/3/4
2021-04-27 13:21:46 +02:00
Crozet Sébastien
65b94ccb91 Add more conversions for translations
Add [T; D] <-> Translation<T, D>
Add Point<T, D> -> Translation<T, D>
2021-04-27 13:17:51 +02:00
Crozet Sébastien
db27a080f1 Cleanup conversions between points and static vectors. 2021-04-27 13:17:12 +02:00
Crozet Sébastien
09be376cd9 Add more conversion for Isometry
Add [T; D] -> Isometry<T, R, D>
Add SVector<T, D> -> Isometry<T, R, D>
Add Point<T, D> -> Isometry<T, R, D>
2021-04-27 13:16:44 +02:00
Crozet Sébastien
43cf22af28 Cleanup conversion between static arrays and static matrices. 2021-04-27 13:16:01 +02:00
Crozet Sébastien
f70e7f77d1 Fix serialization of DVector 2021-04-12 17:43:04 +02:00
Crozet Sébastien
c5c6c139ab Release v0.26.0 2021-04-12 16:15:08 +02:00
Crozet Sébastien
95b021dbfb Don't enable serde by default.
Don't enable `serde/std` by default.
Add a `serde-serialize-no-std` feature to enable serde without its default features.
2021-04-12 12:14:16 +02:00
Crozet Sébastien
ee1c0be2dd Add a note about the PhantomData in Matrix. 2021-04-12 11:27:21 +02:00
Crozet Sébastien
2bef19ed5c Deprecate the MatrixN alias. 2021-04-12 11:15:01 +02:00
Crozet Sébastien
7ec4497f92 Fix wrong alias. 2021-04-12 11:06:13 +02:00
Crozet Sébastien
5a1dbfe37d Use explicit storage names in matrix aliases. 2021-04-12 10:34:15 +02:00
Crozet Sébastien
bc7db9d139 Mark as const-fn some constructors of Point, Translation, Quaternion 2021-04-12 10:32:17 +02:00
Crozet Sébastien
bedf48dbc2 Mark small matrix/vector "new" constractors as const-fn. 2021-04-12 09:18:17 +02:00
Crozet Sébastien
ad5b18ac77 Deny missing docs again. 2021-04-11 14:36:27 +02:00
Crozet Sébastien
600bb175e7 Fix compilation with the mint feature. 2021-04-11 14:35:10 +02:00
Crozet Sébastien
3d834e08c9 Run cargo fmt 2021-04-11 14:09:01 +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
8abbb35b40 First pass to migrate the geometry module to const-generics. 2021-04-11 13:53:45 +02:00
Crozet Sébastien
35ec135d2c Fix compilation after rebase. 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
Sébastien Crozet
b9a524427b
Merge pull request #859 from OfficialURL/dev
Added pow functions
2021-04-11 13:44:06 +02:00
Vinzent Steinberg
7417f6cbca UnitComplex: More efficient sampling 2021-04-10 03:49:46 -03:00
Vinzent Steinberg
09f26385cc Comment about faster impl for unit sphere sampling 2021-04-10 03:36:21 -03:00
Vinzent Steinberg
c8fe49b1e9 Add some comments about random variates 2021-04-10 03:36:21 -03:00
Vinzent Steinberg
fd3a752409 Make use of rand more idiomatic
This should improve performance and accuracy.
2021-04-10 03:13:46 -03:00
Violeta Hernández
341091f647 pow_mut now returns Result. 2021-04-10 00:12:26 -05:00
Violeta Hernández
81f2fc38d7 Use mul_to instead of square_buf
Didn't realize that this was something that was already implemented.
2021-04-09 23:59:22 -05:00
Violeta Hernández
15a63cb892 Memory improvements, extra comments.
The result of `multiplier ^ 2` is now written into a single buffer.
2021-04-09 23:43:59 -05:00
Vinzent Steinberg
260ee54288 Disable some tests if "rand" feature is disabled
This avoids some misleading errors for `cargo test`.
2021-04-10 01:00:12 -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
Violeta Hernández
06b657ad49 Added pow_mut.
Actually, I think this will do.
2021-04-05 12:32:12 -05:00
Violeta Hernández
ab85766b5a Added pow function.
I'll try adding some unchecked and in place variants soon.
2021-04-05 12:17:49 -05:00
Guilherme Salustiano
9947cd5b88
Add type aliases for unit vectors 2021-03-29 15:20:04 -03:00
Crozet Sébastien
b687c63bb2 Add a SIMD version of cap_magnitude: simd_cap_magnitude. 2021-03-06 19:16:22 +01:00
Crozet Sébastien
2dae1ca44f Add conversion of Similarity from/to glam types. 2021-03-06 12:39:53 +01:00
Crozet Sébastien
bdf0de68cf Add conversion of Rotation and UnitComplex from/to glam types. 2021-03-06 12:39:53 +01:00
Crozet Sébastien
729a8fd7f2 Add conversion from/to glam types + move glam/alga/mint impls to a "third_party" module. 2021-03-06 12:20:38 +01:00
Crozet Sébastien
f2c49aecb0 Add "cast" methods to cast the type of the components of most nalgebra types. 2021-03-05 17:08:46 +01:00
Crozet Sébastien
c32172b6b9 Make the rand dependency optional. 2021-03-02 12:25:12 +01:00
Crozet Sébastien
5b9b94c610 Release v0.25.0 2021-03-01 14:25:29 +01:00
Crozet Sébastien
6cfd2bca14 Use proptest for all nalgebra tests. 2021-02-28 17:52:14 +01:00
Crozet Sébastien
7b6b3649f2 Run cargo fmt. 2021-02-25 16:20:11 +01:00
Crozet Sébastien
6699039fec Fix rebase-induced compilation error. 2021-02-25 15:51:13 +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
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