Commit Graph

278 Commits

Author SHA1 Message Date
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 6cfd2bca14 Use proptest for all nalgebra tests. 2021-02-28 17:52:14 +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 69e2ad6a44
Merge pull request #831 from iMplode-nZ/dev
Added bytemuck implementations for static storages.
2021-02-25 15:46:28 +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 dc15261ec1 Move the bytemuck impls to GenericArray and add a transitive impl for matrices. 2021-02-25 14:10:34 +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 9d930eb21a Add a method to cap the magnitude of a vector. 2021-02-22 14:26:40 +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
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 651d318c26 Add sections to the Unit wrapper documentation 2020-11-21 12:19:04 +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 857ce13b63 Add DVector::from(Vec). 2020-11-19 16:28:06 +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 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 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
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 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 4da2bfcb71 Add missing dot-product dimension check.
Fix #776
2020-10-13 17:29:00 +02:00
Philippe Renon 0b0f248267 clippy: fix #identity_op 2020-10-11 11:42:22 +02:00
Philippe Renon 6293d3375b clippy: fix #redundant_field_names 2020-10-11 11:42:22 +02:00