Commit Graph

356 Commits

Author SHA1 Message Date
Violeta Hernández
1a78b00476 Checkpoint #1 2021-07-14 04:25:16 -05:00
Sébastien Crozet
7bcb54641d
Merge pull request #943 from dimforge/point_dim_name
Add a OPoint type that takes type-level integers instead of const-generics
2021-07-10 11:40:31 +02:00
Sébastien Crozet
ac61e112dd
Merge pull request #932 from CAD97/moar-const
Remove scalar bound from geometry type defs
2021-07-10 11:28:23 +02:00
Crozet Sébastien
2ce6811e2c Fix compilation when enabling the bytemuck feature. 2021-07-10 11:24:23 +02:00
CAD97
85d07b22a3 FIx serde impl bounds 2021-07-09 15:30:06 -05:00
CAD97
22ba88353a Fix bounds for bytemuck impls 2021-07-09 15:23:08 -05:00
Sébastien Crozet
a66b54a015
Merge pull request #929 from remilauzier/dev
Fix some clippy warnings and typo
2021-07-08 09:44:43 +02:00
Rémi Lauzier
bbd60fbc8c
Fix some clippy warnings and typo 2021-07-06 11:39:29 -04:00
Sébastien Crozet
1fc29dcf63
Merge pull request #930 from CAD97/patch-1
impl Hash for Transform
2021-07-06 01:09:00 -07:00
CAD97
314b4dd103 Remove scalar bound from geometry type defs
This was inconsistently applied, with some types having <T>, some having
<T: Scalar>, and some having <T: RealField>.
This unifies all types to match the convention of Matrix:
Just declare <T> at type def time, and apply bounds on impls only.

A significant advantage of this approach is const fn construction. Const
fn generics currently still can't have trait bounds, so any generic
const fn needs to only move opaque types around. Construction methods
such as new_unchecked or from_parts can be made const by removing their
generic bounds after this PR.

Actual constification is left to a follow-up PR.

Note that na::Transform is _not_ loosened here, as it has more complicated
definition requirements.
2021-07-05 19:04:10 -05:00
Christopher Durham
1eeaf3526c
Rotation::matrix_mut_unchecked may not cause UB
...because it isn't unsafe, so clarify the documentation to match.
2021-07-05 18:53:11 -05:00
Christopher Durham
3b4b661756
impl Hash for Transform
This just fixes the types in the existing TODO to compile.
2021-07-05 18:36:33 -05:00
Rémi Lauzier
78da5209e9
Fix some clippy warnings 2021-07-03 23:43:45 -04:00
Andreas Longva
92c26334ec Fix serde impls and Distribution impl for OPoint 2021-07-02 12:01:01 +02:00
CAD97
396d3d6615 Add missing repr(C) on bytemuckable geometry types 2021-06-28 20:49:57 -05:00
CAD97
cb0812aaf3 Add bytemuck impls to geometry types 2021-06-28 20:36:28 -05: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
Violeta Hernández
281b140365
Fix most clippy warnings 2021-06-18 09:45:37 +02:00
Violeta Hernández
d64e799fc9
Fixes #909 (#917) 2021-06-17 09:45:33 +02:00
Malte Tammena
38e9a5da33 Annotate get_mut/slice-like functions with #[must_use] 2021-06-07 17:15:36 +02:00
Malte Tammena
9fb963017f Simplify default #[must_use] annotation 2021-06-07 16:34:03 +02:00
Malte Tammena
39aa52d019 Add must_use annotations in src/**/*.rs 2021-06-06 14:46:36 +02:00
David Koloski
9fff10b1f0 Move rkyv impls into separate modules 2021-05-09 12:24:07 -04:00
David Koloski
38dd3345e0 Switch to distributive implementations 2021-05-09 12:24:03 -04:00
David Koloski
b48b104d57 Add rkyv implementations for a few types 2021-05-09 12:23:16 -04: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
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
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
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
Vinzent Steinberg
7417f6cbca UnitComplex: More efficient sampling 2021-04-10 03:49:46 -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
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
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
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
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
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
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
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
478921881f Add approximate rotation composition for unit-quaternion. 2021-02-22 14:27:08 +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
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
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
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
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
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
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
f515cffad9 clippy: fix redundant_closure warnings 2020-11-19 11:43:08 +01:00
Philippe Renon
5dff493515 clippy: fix just_underscores_and_digits warnings 2020-11-16 11:04:57 +01:00
Crozet Sébastien
e852df6124 Add sections for most Matrix methods. 2020-11-15 16:57:49 +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
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
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
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
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
CGMossa
bc70258e5c
Why Option<_> (#746)
Add a comment about why `UnitQuaternion::rotation_between` returns an Option.
2020-07-16 09:27:06 +02:00
sebcrozet
2c2d1e4f07 Run cargo fmt. 2020-06-07 09:07:25 +02:00
Sébastien Crozet
423b4b27b0
Merge pull request #585 from fusion-engineering-forks/pr-default 2020-06-07 08:58:47 +02:00
sebcrozet
bbb3be512e Run cargo fmt. 2020-04-05 18:49:48 +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
Sébastien Crozet
a095a7dfcd Re-add some missing transform multiplications. 2020-03-24 19:06:28 +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
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
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
5f4a0c7b13 Fix slerp for regular vectors. 2020-03-02 12:45:38 +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
thibault
67f3379b34 Corrected typo. 2019-10-28 14:15:03 +01:00
thibault
7773f13016 Changed name. Changed argument. Added documentation line. 2019-10-28 14:15:03 +01:00
thibault
dacd15e927 Added function to compute the mean quaternion from a vector of unit quaternions. 2019-10-28 14:15:03 +01:00
Jake Shadle
4fa4a6b854 HTTPS All The Things (#608)
* Use https for all links where it is valid

* Fix random links to external sites
2019-08-27 22:05:28 +02:00
Christian Authmann
589aebbf85 Add #[must_use] to all functions with a _mut variant (#598) 2019-06-05 23:04:04 +02:00
Mara Bos
85c931520a Implement Default for Quaternion and UnitQuaternion. 2019-04-16 10:12:09 +02:00
sebcrozet
ae4afa3d2c Merge branch 'master-public' into dev
# Conflicts:
#	Cargo.toml
#	src/base/matrix.rs
#	src/geometry/quaternion.rs
2019-03-31 16:33:25 +02:00
sebcrozet
94a8babcdc Uncomment the fast renormalization of Rotation2. 2019-03-31 14:34:07 +02:00
sebcrozet
55873cae37 Fix compilation with no-std. 2019-03-31 12:06:26 +02:00
sebcrozet
ba40e8eb55 Fix merge errors due to the switch to rust 2018. 2019-03-31 10:53:31 +02:00
sebcrozet
38ef0cbf7b Merge branch 'dev' into complex
# Conflicts:
#	src/base/ops.rs
#	src/geometry/isometry.rs
#	src/geometry/quaternion.rs
#	src/geometry/quaternion_construction.rs
#	src/geometry/rotation.rs
#	src/geometry/similarity.rs
#	src/geometry/transform.rs
#	src/geometry/translation.rs
#	src/geometry/unit_complex.rs
2019-03-31 10:48:59 +02:00
Adam Nemecek
1e04053a21 refactoring 2019-03-31 10:34:03 +02:00
Adam Nemecek
e416360fc9 geometric operations 2019-03-31 10:34:03 +02:00
Simon Puchert
74aefd9c23 Improve precision of UnitQuaternion::angle (#569)
The previous implementation had stability problems for small angles due
to the behaviour of the arccosine it used. In particular, it needs a
hack to handle "cosines" greater than 1 and the smallest obtainable
nonzero angle for e.g. f32 is acos(1-2^-22) = 0.00069...
These problems can be fixed by using an arctangent-based formula.
2019-03-31 10:32:34 +02:00
sebcrozet
4ef4001836 Rename Real to RealField. 2019-03-25 11:21:41 +01:00
sebcrozet
5b28c39fa7 Rename Complex to ComplexField. 2019-03-25 11:19:36 +01:00
sebcrozet
3cbe60523a 2018 edition. 2019-03-23 14:33:47 +01:00
sebcrozet
ce24ea972e Remove all spurious allocation introduced by complex number support on decompositions. 2019-03-23 14:13:00 +01:00
sebcrozet
921a05d523 Implement some BLAS opertaions involving adjoint. 2019-03-23 11:48:12 +01:00
sebcrozet
2f0d95bdbb Fix most tests. 2019-03-19 12:00:10 +01:00
sebcrozet
e4748c69ce Start fixing SVD. 2019-03-18 11:23:19 +01:00
adamnemecek
1e614db227 Quaternionic division + refactoring (#563) 2019-03-18 09:08:42 +01:00
Sébastien Crozet
fac012a775
Merge pull request #558 from tpdickso/geometric-transform-point
Add the `transform` methods as inherent methods on geometric types
2019-03-16 10:06:00 +01:00
Sébastien Crozet
a2c0a453d3
Add operator explanation to docs
Co-Authored-By: tpdickso <tpdickso@uwaterloo.ca>
2019-03-15 10:50:47 -04:00
sebcrozet
010c009cff Fix Schur decomposition. 2019-03-12 13:15:02 +01:00
Adam Nemecek
edb08cd900 quaternion trigonometry 2019-03-04 08:36:46 -08:00
sebcrozet
77f048b6b9 WIP use Complex instead of Real whenever possible on the linalg module. 2019-03-02 19:33:49 +01:00
Benjamin Hetherington
aeff67ecbd Correct typo in quaternion documentation (#559)
Correct "looses" to "loses" in quaternion.rs documentation.
2019-02-25 17:34:13 +01:00
Terence
2a2e9d7f8e Add the transform methods as inherent methods on geometric types
This adds `transform_point`, `transform_vector`,
`inverse_transform_point` and `inverse_transform_vector` as inherent
methods on the applicable geometric transformation structures, such
that they can be used without the need to import the `Transformation`
and `ProjectiveTransformation` traits from `alga`.
2019-02-24 11:29:27 -05:00