Commit Graph

44 Commits

Author SHA1 Message Date
Violeta Hernández
10b5dc9bb6 Many miscellaneous improvements throughout 2021-07-17 20:19:20 -05:00
Violeta Hernández
c01d591478 We have reached compilation! 2021-07-17 13:01:03 -05:00
Violeta Hernández
87fe2b30df Checkpoint #9 2021-07-16 23:17:56 -05:00
Violeta Hernández
c3f869e017 Checkpoint #8 2021-07-16 01:53:28 -05:00
Violeta Hernández
775917142b More trait restructuring! 2021-07-14 17:21:22 -05:00
Andreas Longva
92c26334ec Fix serde impls and Distribution impl for OPoint 2021-07-02 12:01:01 +02:00
Crozet Sébastien
16b8f4812d Define OPoint, a generic point with D: DimName
And define Point<T, const D: usize> as an alias for OPoint.
2021-06-26 18:39:20 +02:00
Crozet Sébastien
db27a080f1 Cleanup conversions between points and static vectors. 2021-04-27 13:17:12 +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
3d834e08c9 Run cargo fmt 2021-04-11 14:09:01 +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
Vinzent Steinberg
c8fe49b1e9 Add some comments about random variates 2021-04-10 03:36:21 -03: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
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
Crozet Sébastien
cf769522f8 Add sections to the documentations of Isometry and Point. 2020-11-20 17:45:11 +01:00
sebcrozet
bbb3be512e Run cargo fmt. 2020-04-05 18:49:48 +02:00
sebcrozet
f8cd26cfa9 Replace alga by simba. 2020-03-21 12:16:46 +01:00
Avi Weinstock
774f4da3e2 Add Clone to Scalar, providing a default implementation of inlined_clone. Change Scalar + Clone bounds to just Scalar. 2020-03-02 12:45:37 +01:00
Avi Weinstock
52aac8b975 Add inlined_clone to Scalar, and relax bounds from Scalar + Copy to Scalar + Clone nearly everywhere.
The various nalgebra-lapack FooScalars are still Copy because they make use of uninitialized memory.
nalgebgra-glm Number still uses Copy because upstream `approx` requires it.
2020-03-02 12:45:37 +01:00
Avi Weinstock
6c236af696 Add Scalar + Copy bounds to code that's under feature flags.
`./ci/test.sh` now passes locally.

Refactoring done via the following sed commands:
```bash
export RELEVANT_SOURCEFILES="$(find src -name '*.rs') $(find examples -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Arbitrary\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Serialize\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Deserialize\)/N\1: Scalar + Copy + \2/' $f; do
export RELEVANT_SOURCEFILES="$(find nalgebra-glm -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar,/N\1: Scalar + Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar>/N\1: Scalar + Copy>/' $f; done
for f in algebra-glm/src/traits.rs; do sed -i 's/Scalar + Ring/Scalar + Copy + Ring>/' $f; done # Number trait definition
```
2020-03-02 12:45:37 +01:00
Avi Weinstock
7d99015473 Move Copy constraint from the definition of Scalar to all its use-sites.
This should semantically be a no-op, but enables refactorings to use non-Copy scalars on a case-by-case basis.
Also, the only instance of a `One + Zero` trait bound was changed into a `Zero + One` bound to match the others.

The following sed scripts were used in the refactoring (with each clause added to reduce the error count of `cargo check`):

```bash
export RELEVANT_SOURCEFILES="$(find src -name '*.rs') $(find examples -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar,/N: Scalar+Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Field/N: Scalar + Copy + Field/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Zero/N: Scalar + Copy + Zero/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Closed/N: Scalar + Copy + Closed/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Eq/N: Scalar + Copy + Eq/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + PartialOrd/N: Scalar + Copy + PartialOrd/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + Zero/N: Scalar + Copy + Zero/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + PartialEq/N: Scalar + Copy + PartialEq/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar>/N: Scalar+Copy>/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + $bound/N: Scalar + Copy + $bound/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + $bound/N: Scalar + Copy + $bound/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar,/N\1: Scalar+Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + $trait/N: Scalar + Copy + $trait/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar + Superset/N\1: Scalar + Copy + Superset/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar + \([a-zA-Z]*Eq\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \([a-zA-Z]*Eq\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(hash::\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar {/N\1: Scalar + Copy {/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Zero\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Bounded\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Lattice\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Meet\|Join\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(fmt::\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Ring\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Hash\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Send\|Sync\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/One + Zero/Zero + One/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Zero\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \($marker\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar>/N\1: Scalar + Copy>/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/Scalar+Copy/Scalar + Copy/' $f; done
```
2020-03-02 12:45:37 +01:00
sebcrozet
3cbe60523a 2018 edition. 2019-03-23 14:33:47 +01:00
adamnemecek
975d72f070 Replace explicit types with Self where possible. 2019-02-16 22:29:41 +01:00
sebcrozet
911ddca588 Implement From<Vector> for Translation and Quaternion. 2018-11-01 11:07:36 +01:00
sebcrozet
4ce6555b96 Add more point and quaternion documentation. 2018-10-27 15:00:18 +02:00
sebcrozet
b32a02f0ac Add doc-tests to point_construction.rs 2018-10-27 15:00:18 +02:00
sebcrozet
551c44c854 Implement From<Vector> for Point. 2018-10-27 15:00:18 +02:00
sebcrozet
14ad10a7e0 Add rustfmt.toml and run it. 2018-10-27 15:00:18 +02:00
sebcrozet
9e2541f949 Add a Point::from_slice 2018-10-13 13:13:48 +02:00
Bruce Mitchener
175c41ed3a Typo fixes. 2018-09-24 21:15:07 +02:00
sebcrozet
3ee13ec528 Update changelog. 2018-05-27 12:25:58 +02:00
Shane Pearman
2814e09d31 Add from array impl for points. 2018-05-27 12:23:54 +02:00
sebcrozet
a51744f86b Update to rand 0.5. 2018-05-26 22:07:57 +02:00
sebcrozet
ca093fad29 Move core/* to base/* + add conditional compilation to dynamics matrices when no_std is enabled. 2018-05-26 22:07:57 +02:00
Sébastien Crozet
662cc9cd7f Run rust fmt. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
3f70af97dd Add the most common matrix decompositions. 2017-08-15 19:07:18 +02:00
Sébastien Crozet
99b6181b1e Complete library rewrite.
See comments on #207 for details.
2016-12-04 22:47:36 +01:00