sebcrozet
fc782f3644
Make MatrixN::{transform_vector, transform_point} inherent methods.
...
Addresses https://github.com/rustsim/nalgebra/issues/372
2018-10-30 07:55:08 +01:00
sebcrozet
7ecbacacda
Add elimination tree computation.
2018-10-30 07:46:34 +01:00
sebcrozet
bfab204a24
Add lerp for vectors.
...
Fix #453
2018-10-27 16:06:45 +02: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
6d63a0a5f1
Add doc-tests to isometry_construction.rs
2018-10-27 15:00:18 +02:00
sebcrozet
a512e16868
Add doc-tests to isometry.rs.
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
5ea612ef96
Remove mention to the eye and target on the unit quaternion look_at_* methods.
2018-10-27 15:00:18 +02:00
sebcrozet
f6cd81b028
Add doc-tests for several matrix construction methods.
2018-10-27 15:00:18 +02:00
sebcrozet
15844d877a
Add doc-tests for componentwise operations.
2018-10-27 15:00:18 +02:00
sebcrozet
34b20dc291
Add lower triangular solve with sparse right-hand-side.
2018-10-23 18:18:05 +02:00
sebcrozet
e4e5659405
Add lower triangular solve with dense right-hand-side.
2018-10-22 17:55:13 +02:00
sebcrozet
dc8edeceb2
Use an iterator to iterate through a column entries.
2018-10-21 07:42:32 +02:00
sebcrozet
9fa3e7a769
Implement CsMatrix: axpy_cs, transpose, Add and Mul.
2018-10-20 22:42:16 +02:00
sebcrozet
0d24cf4dc0
Run rustmt.
2018-10-20 22:26:44 +02:00
sebcrozet
a3d363f397
Fix minor typos.
2018-10-16 20:57:52 +02:00
sebcrozet
7a9cfef285
Complete doc-tests for blas operations.
2018-10-16 20:57:52 +02:00
sebcrozet
8e3edf102c
Start adding doc-tests for BLAS operations.
2018-10-16 20:57:52 +02:00
Bruce Mitchener
47fe851173
Add favicons to docs.
2018-10-16 18:28:39 +02:00
sebcrozet
9e2541f949
Add a Point::from_slice
2018-10-13 13:13:48 +02:00
sebcrozet
a68937990b
Consider two empty matrices as equal.
2018-10-13 12:59:36 +02:00
sebcrozet
a390732b97
Fix partial_cmp
2018-10-13 12:59:36 +02:00
sebcrozet
18e9b8998d
Add impls of From/Into to convert any transformation types to a matrix.
2018-10-13 11:25:19 +02:00
João Costa
7a95644a21
Simplify SVD recompose pattern match
2018-10-13 10:55:37 +02:00
João Costa
8b1aa2078c
Change the SVD methods to return a Result instead of panicking
2018-10-13 10:55:37 +02:00
Bruce Mitchener
3be727e76b
Capitalize 'Euclidean'.
2018-10-09 08:31:38 +02:00
sebcrozet
c7c156a6a0
Use other keywords for isometry documentations.
...
Fix #419 .
2018-10-06 07:27:40 +02:00
Bruce Mitchener
3a24afd111
clippy: Use println!(f), without empty string.
2018-10-05 20:31:29 +02:00
Sébastien Crozet
5059d7ee7b
Add conditional compilation for the base::MatrixVec import too.
2018-10-04 20:37:12 +02:00
Sébastien Crozet
3abeae04f5
Add conditional compilation to From impls for dynamically-sized matrices.
2018-10-04 20:37:12 +02:00
Jack Wrenn
23d646c342
Add an `Into` impl for converting `MatrixSlice`s into `MatrixMN`
...
See #342 .
2018-10-04 20:37:12 +02:00
mborst
12962c3c13
Implement map_with_location.
2018-09-28 05:22:32 +02:00
Thomas Vincent
7331807a6d
Fix minor typos
2018-09-27 06:16:04 +02:00
Bruce Mitchener
a8ae62ea52
Improve cross-linking and cross-referencing in docs.
2018-09-27 06:00:32 +02:00
Bruce Mitchener
57fa7099aa
Call `base` that instead of `based`.
2018-09-27 05:49:18 +02:00
Benjamin Saunders
2f03857017
Introduce Unit::from_ref_unchecked
2018-09-25 05:35:20 +02:00
sebcrozet
f218186ec0
Add Rotation * Unit<Vector>
2018-09-24 22:05:15 +02:00
sebcrozet
51a4e73386
Use typenum type-level integer for swizzle dimension comparison.
...
Fix #408 .
2018-09-24 22:04:05 +02:00
Bruce Mitchener
175c41ed3a
Typo fixes.
2018-09-24 21:15:07 +02:00
sebcrozet
c6bc62c95f
For matrices, return the actual result of partial_clamp instead of None.
...
Fix #401
2018-09-24 20:58:09 +02:00
sebcrozet
f2bad264ef
Re-export conversion functions.
2018-09-23 17:10:49 +02:00
sebcrozet
eea13ffa7d
Add swizzling up to dimension 3 to vectors.
2018-09-23 17:10:49 +02:00
sebcrozet
38c7ed3a11
Add methods to see a Perspective3 or Orthographic3 as a Projective3.
2018-09-22 16:15:11 +02:00
sebcrozet
23bde7dfd0
Reduce requiremens from Real to Ring on the cg module.
2018-09-22 16:15:11 +02:00
sebcrozet
7884f20ea7
Add quaternion dot product.
2018-09-22 16:15:11 +02:00
sebcrozet
832bf42b56
Add slerp for unit vectors.
2018-09-22 16:15:11 +02:00
sebcrozet
a03fd6bff7
Add zip_zip_map to map on three matrices simultaneously.
2018-09-22 16:15:11 +02:00
Jacob Kiesel
787d20cff4
Add magnitude synonym functions for ease of use
2018-09-21 18:28:44 +02:00
sebcrozet
08685122ea
Fix projective * point multiplication.
...
The scaling did not occur at the right time.
2018-09-20 20:59:01 +02:00
sebcrozet
99b54465c7
Add a copy_from_slice method.
...
Fix #381 .
2018-09-13 08:37:20 +02:00
sebcrozet
b272f3ba76
Fix compilation errors when the serde-serialize feature is enabled.
...
Fix #369 .
2018-09-13 07:49:38 +02:00
Cloud Han
7615212e85
Fixed error in comments
...
M-by-N matrices are not square when M != N
2018-09-10 05:57:20 +02:00
sebcrozet
dba752e91e
Implement Send + Sync for SliceStorage{Mut}.
...
Fix #366 .
2018-09-04 07:54:12 +02:00
sebcrozet
24eb7880f3
Release v0.16.0.
2018-07-20 16:35:57 +02:00
sebcrozet
afb6317893
Fix Xargo build.
2018-07-20 16:33:59 +02:00
sebcrozet
378b39db9c
Update impls of abomonation.
2018-07-20 16:33:59 +02:00
sebcrozet
3b19b6553e
Update dependencies.
2018-07-20 16:33:59 +02:00
Benjamin Saunders
aad94661c9
Document distribution uniformity, fix `Rotation2` distribution
...
Also tweak UnitComplex distribution for consistency
2018-07-10 20:17:52 +02:00
Sébastien Crozet
8e90e2adf7
Use StandardNormal on rand::distributions.
2018-07-10 20:17:52 +02:00
Sébastien Crozet
a1d8aba501
Use StandardNormal only with the "std" feature.
2018-07-10 20:17:52 +02:00
Benjamin Saunders
352e71656d
Uniformly distributed random rotations, unit vectors
2018-07-10 20:17:52 +02:00
Bernardo Meurer
c9be27abb5
Added imax/imin() as variations of iamax/iamin()
2018-07-10 20:15:21 +02:00
sebcrozet
3eaa65c9cf
Minor doc fixes.
2018-07-07 17:37:15 +02:00
Thomas Forgione
b1616e236c
Changed loops order in from_fn_generic
2018-06-16 14:27:55 +02:00
Simon Heath
ba5bc77262
Removes DefaultAllocatorBound from mint::Point conversions
2018-06-09 00:36:19 +02:00
Simon Heath
491903e1de
Replace mem::transmute() with pointer casts
...
And fix erroneous #[cfg]
2018-06-09 00:36:19 +02:00
Simon Heath
a3c4dbca95
Adds conversions to and from mint Point types.
2018-06-09 00:36:19 +02:00
Hoàng Xuân Phú
4b3a157513
Fix mismatching description for is_empty
2018-05-29 07:55:06 +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
c2d597e744
Release v0.15.0.
2018-05-26 22:26:06 +02:00
sebcrozet
cdfa73eba6
Fix warnings.
2018-05-26 22:07:57 +02:00
sebcrozet
0c29a04042
Fix compilation with the 'mint' feature.
2018-05-26 22:07:57 +02:00
sebcrozet
d759db682c
Make the alloc feature actually work.
2018-05-26 22:07:57 +02:00
sebcrozet
a51744f86b
Update to rand 0.5.
2018-05-26 22:07:57 +02:00
sebcrozet
57fa307d4d
Remove deprecated code related to the incoherent_fundamental_impl lint
2018-05-26 22:07:57 +02:00
sebcrozet
6c895ed383
gemm: don't return early for scalar types other than f32,f64.
2018-05-26 22:07:57 +02:00
sebcrozet
40e74e0186
Fix compilation with and without #![no_std].
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
sebcrozet
88055dfc45
Update to approx 0.2.
2018-05-26 22:07:57 +02:00
sebcrozet
8cfd89f287
Add ::from_distribution to build a matrix from a user-provided distribution.
2018-05-17 15:59:51 +02:00
Sébastien Crozet
60fcff9e1d
Re-add the ::new slice constructor, but mark them as deprecated.
2018-05-06 23:44:57 +02:00
sebcrozet
d89e3dbac6
Rename the matrix slice constructors from `::new_*` to `_from_slice_*`.
2018-05-06 23:44:57 +02:00
sebcrozet
fefba2ef4e
Fix conflicting impls for isometry multiplication.
2018-05-06 23:44:57 +02:00
Sébastien Crozet
7357d17b77
Fix typos.
2018-05-06 23:31:36 +02:00
Sébastien Crozet
31e3547401
Add UnitQuaternion::{new_eps, from_scaled_axis_eps}.
2018-05-06 23:31:36 +02:00
Sébastien Crozet
1ac8bbd3d1
Add .axis_angle to UnitComplex and UnitQuaternion + .rotation_between_axis to UnitComplex.
2018-03-08 17:30:59 +01:00
Sébastien Crozet
5ce41060e5
Fix typos.
2018-02-03 15:25:04 +01:00
Sébastien Crozet
daba16023a
Comment the argument of the (private) extend_rows function.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
487af7d979
Fix matrix resizing with empty matrices.
...
Fix #306 .
2018-02-03 13:59:05 +01:00
Sébastien Crozet
9bd2890875
Add documentation.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
84a01a720d
Fix unnecessary parenthesis.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
662cc9cd7f
Run rust fmt.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
6d4bfc3b79
Fix warnings.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
5c28af3a53
Add 3d cross-product matrix construction from a vector.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
3dc76caf7e
Add Isometry × Unit<Vector>.
...
Fix #285 .
2018-02-03 13:59:05 +01:00
Sébastien Crozet
144dfbd555
Add quadform/cmpy/cdpy.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
52598de44c
Add rotation_between_axis/scaled_rotation_between_axis.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
dc41b55e5a
Add iamin.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
fcfcc391b5
Rename slice constructors to remove the "_slice" after "new".
2018-02-03 13:59:05 +01:00
Sébastien Crozet
4cb43498a4
Add unsafe slice construction.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
a35e40b38e
Add the `repeat` constructor.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
300b3d0452
Add transpose gemv.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
1a7f0dea9f
Add column vector slice aliases.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
1ee8a702ea
Fix quadratic form computation.
...
For the moment only the version that does not make any assumption regarding symmetry is
implemented.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
39d20306f1
Add symmetric quadratic form computation.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
94c1ab8e7b
Add matrix slice construction from array slices.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
adbb7d989e
Add aliases for matrix slices.
2018-02-03 13:59:05 +01:00
Eduard Bopp
098d91cae0
Remove phantom data from matrix debug output
...
Addresses #295 .
2018-01-31 19:24:42 +01:00
Nil Goyette
2ad227661a
Fix RowVector3 cross product
2018-01-17 11:23:27 -05:00
Jack Wrenn
922b339fb0
Implement to_euler_angles for Rotation3 and UnitQuaternion
...
Resolves sebcrozet/nalgebra#243 .
2018-01-09 15:15:57 -05:00
Colin Wallace
e5259130e5
Fix spelling of "below"
2017-10-26 21:13:35 -07:00
Dzmitry Malyshau
94db3f533b
Mint rebase
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
6b6a0717c2
Mint matrices
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
ce2063c191
Mint Euler angles
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
b0127ab5dc
Mint quaternions
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
7d96007bdb
Mint vector conversions
2017-10-09 20:22:24 +02:00
Eduard Bopp
3a1fb0ed88
Fix feature flagging for abomonation-serialize
...
The tests can now be run without the abomonation feature. Also fixes a
bug in the feature flagging for abomonation.
2017-09-18 20:10:32 +02:00
Sébastien Crozet
48f80d99cc
Fix abomonation integration.
2017-08-15 19:36:38 +02:00
Sébastien Crozet
afef66227e
Merge branch 'master' into abomonation
2017-08-15 19:18:39 +02:00
Sébastien Crozet
740d19437c
Fix unused_result lint errors.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
b475c4da9f
Move `set_row`, `set_column` from matrix.rs to edition.rs.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
3e349b80cf
Implement serde traits for all linalg structs.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
e84b73c848
Deprecate into_owned and clone_owned for Quaternion, UnitQuaternion, and Transform.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
70bb2cbe46
Implement Clone, Debug, Copy for all linalg structures.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
b22eb91a16
Add documentation.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
c258d13f98
Fix stepping for slices.
...
The previous implementation was wrong compared to what the documentatino claimed.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
41f5231446
Add `assign` and generalize `map` to other return types.
...
The method assign replaces each components with the result of a closure (that takes the
corresponding component as parameter).
2017-08-15 19:07:18 +02:00
Sébastien Crozet
053de0576f
nalgebra-lapack: unify API of LU.solve and Cholesky.solve with nalgebra.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
00039c0a76
Add methods for computing decompositions.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
aaa359f3b0
Remove hand-written rustdoc doc for quaternon and unit_complex.
...
Those are now generated automatically by rustdoc.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
a7bce9cf3f
symmetric_eigen: allow computing only eigenvalues.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
3f70af97dd
Add the most common matrix decompositions.
2017-08-15 19:07:18 +02:00
Eduard Bopp
a45ef26375
Provide safer Abomonation impl for matrix arrays
...
This is more robust than delegating to a slice, which has been removed
upstream due to unsafety. Since we can rely on there being no pointer
indirection in a GenericArray, we just iterate over the array.
2017-08-14 20:53:55 +02:00
Eduard Bopp
e09af0ca82
Implement Abomonation for remaining types
2017-08-14 14:32:02 +02:00
Eduard Bopp
f67a7bd324
Implement Abomonation for rotations
2017-08-14 12:41:03 +02:00
Eduard Bopp
308177a7d6
Implement Abomonation for translations
2017-08-14 12:37:16 +02:00
Eduard Bopp
7c3a05f668
Implement Abomonation for dynamic matrices
2017-08-14 12:33:14 +02:00
Eduard Bopp
49f12a379d
Implement Abomonation for static-size points
2017-08-14 12:18:47 +02:00
Eduard Bopp
65fa4cf740
Implement Abomonation for static matrices
2017-08-14 12:07:06 +02:00
Eduard Bopp
e0cc7ff21b
Fix TCategory implementation for TAffine
...
Closes #271 .
2017-07-29 14:45:20 +02:00
Eduard Bopp
9e02b13f3e
Refer to other conversion method in documentation
...
This is motivated by #235 hoping to improve discoverability of this
feature.
2017-07-28 20:13:52 +02:00
Eduard Bopp
7a62b68c38
Merge pull request #251 from Ralith/unnested-serialization
...
Remove gratuitous indirection in serialization impls
2017-07-26 19:40:57 +02:00
Sébastien Crozet
f86752e44a
De-ambiguat AsRef/AsMut/Into implementations.
...
Addresses comments of #225 .
2017-07-22 09:57:21 +02:00
Eduard Bopp
cfa3c6533f
Merge pull request #242 from sebcrozet/into_iterator
...
Implement IntoIterator for &Matrix and &mut Matrix
2017-07-13 03:12:38 +02:00
Eduard Bopp
69fd070d50
Merge pull request #259 from burtonageo/update_readme
...
update crate documentation to point to latest crates.io version
2017-07-13 03:09:17 +02:00
Brendan Zabarauskas
ba41a8ce5a
Implement the sum and product traits for matrices
...
Closes #264
2017-07-02 01:27:16 +10:00
George Burton
7b17fa58e8
update crate documentation to point to latest
2017-05-20 19:39:02 +01:00
Sébastien Crozet
b78dcb3155
Add methods to set a row or a column of the matrix.
2017-05-17 22:47:45 +02:00
Benjamin Saunders
0979896dbd
Remove gratuitous indirection in serialization impls
2017-05-03 19:51:26 -07:00
Sébastien Crozet
35d2b6dc88
Add kronecker product.
...
Closes #248
2017-05-03 22:47:18 +02:00
Andreas Longva
a52b079578
Relax invertibility test in try_inverse()
...
The previous implementation of try_inverse() used an approximate
check of the determinant against 0 for small matrices to
determine if the matrix was invertible. This is not a reliable test,
and may fail for perfectly invertible matrices. This change
simply makes the test criterion an exact comparison instead.
2017-04-28 19:11:33 +02:00
Sébastien Crozet
485abf1462
Update to serde 1.0.
2017-04-24 20:13:30 +02:00
Sébastien Crozet
68b7d21828
Implement IntoIterator for &Matrix and &mut Matrix
...
IntoIterator for Matrix will beharder to implement.
Partially addresses #241 .
2017-04-11 00:16:43 +02:00
Sébastien Crozet
cbbe1a2aee
Fix html_root_url.
2017-04-09 13:19:27 +02:00
Jonas Olson
9c79937485
Allow for documentation strings in macro component_binop_impl.
2017-04-07 18:42:22 +02:00
Jonas Olson
acfa8586ea
Fix typo in scalar.rs.
2017-04-06 19:49:00 +02:00
Sébastien Crozet
e6ee11617a
Add a method to compute the trace of a matrix.
...
Fix #231 .
2017-03-19 22:44:08 +01:00
Sébastien Crozet
d6285e1165
Implement AsRef, AsMut, Into, From.
2017-02-18 13:44:03 +01:00
Sébastien Crozet
42b48563be
Make serde optional behind the "serde-serialize" feature.
2017-02-15 22:04:34 +01:00
Sébastien Crozet
086e6e719f
Doc + slerp + conversions.
2017-02-12 18:17:09 +01:00
Sébastien Crozet
99b6181b1e
Complete library rewrite.
...
See comments on #207 for details.
2016-12-04 22:47:36 +01:00
nwin
30d37bc6cc
Fixed typos in point.rs and vector.rs.
2016-10-15 12:02:24 +02:00
Sébastien Crozet
89c745fa17
Fix &DMatrix - DMatrix.
...
Fix #203 .
2016-09-06 19:42:28 +02:00
Sébastien Crozet
d442b0479d
Prevent the README cargo example to be compiled as a test.
2016-08-29 21:22:09 +02:00
Sébastien Crozet
8f5b60421c
Add an example dependency entry to the README.
2016-08-29 21:16:15 +02:00
Sébastien Crozet
96d7f68f14
Merge pull request #199 from phaazon/unused-arg
...
Unused arg in ApproxEq removed
2016-08-29 21:11:55 +02:00
Jakub Hlusička
840fa71e67
implement common operations for references
2016-08-26 12:22:13 +02:00
Dimitri Sabadie
4afb2ff476
Fixed tests ( #198 ).
2016-08-26 11:00:34 +02:00
Dimitri Sabadie
a90c2c23fa
Fixed #198 .
2016-08-26 10:09:53 +02:00
Sébastien Crozet
d29ff53329
Implement traits from the algebra crate.
2016-08-21 21:35:56 +02:00
Sébastien Crozet
326b22ac33
Fix benchmarks.
2016-08-16 13:35:17 +02:00
Sébastien Crozet
05a0c12c4a
Add a missing file that defines the `Unit` type.
2016-08-16 12:47:11 +02:00
Sébastien Crozet
c4728a33d4
Fix quaternion polar decomposition.
2016-08-16 12:40:39 +02:00
Sébastien Crozet
9c4bff1f85
Rename methods starting with `new_with_` to `from_`.
2016-08-16 10:48:41 +02:00
Sébastien Crozet
d45c242a15
Add a `Unit` wrapper type, remove UnitQuaternion.
...
The `Unit` wrapper type ensures that elements of the underlying type has a unit norm.
For example, `Unit<Vector3>` designates an element of S².
In particular `UnitQuaternion<N>` is now a type alias for `Unit<Quaternion<N>>`.
2016-08-16 10:27:07 +02:00
Sébastien Crozet
88a74ca4e5
Macro groupping.
2016-08-11 23:28:08 +02:00
Sébastien Crozet
7b4a57c224
Fix some clippy warning.
...
The following lints were disabled:
* wrong_self_convention
* needless_range_loop
* reverse_range_loop
* len_without_is_empty
* explicit_iter_loop
* many_single_char_names
* similar_names
* too_many_arguments
* float_cmp
* new_without_default
2016-08-11 23:08:21 +02:00
Dimitri 'phaazon' Sabadie
1fdd8979af
Fixed Zero and One for Quaternion.
2016-07-30 14:08:55 +02:00
Dimitri Sabadie
988d9272d2
Cleaned up exp(), log() and powf() for Quaternion. Also, they’re for Quaternion only as we cannot define them on UnitQuaternion.
2016-07-29 17:51:35 +02:00
Dimitri Sabadie
213cc41f7d
Added exp(), log() and powf() for Quaternion / UnitQuaternion.
2016-07-29 15:56:04 +02:00
Sébastien Crozet
aa7d4b927c
Implement Display for Identity.
2016-04-30 14:32:16 +02:00
Sébastien Crozet
13a5bee25f
Implement From returning a value (instead of a ref only) for matrices and vectors.
2016-04-19 09:36:30 +02:00
Sébastien Crozet
df872f407d
Replace "col" by "column".
...
Related to #176 .
2016-04-18 08:32:12 +02:00
Sébastien Crozet
0c84d18850
Substitute: diag -> diagonal.
2016-04-17 19:47:56 +02:00
Sébastien Crozet
0380661bd2
Remove some restrictions for `NumVector`.
...
This removes the following inheritances:
* Mul<Self, Output = Self>
* Div<Self, Output = Self>
* Add<N, Output = Self>
* Sub<N, Output = Self>
* MulAssign<Self>
* DivAssign<Self>
* AddAssign<N>
* SubAssign<N>
They silently overrided:
* Mul<N, Output = Self>
* Div<N, Output = Self>
* Add<Self, Output = Self>
* Sub<Self, Output = Self>
* MulAssign<N>
* DivAssign<N>
* AddAssign<Self>
* SubAssign<Self>
2016-04-17 19:26:18 +02:00
Sébastien Crozet
479cc7a7ff
Fix compilation when the "generic_sizes" feature is enabled.
2016-04-17 17:42:14 +02:00
Sébastien Crozet
e6156727f2
Use full names for everything.
...
Note that `sqdist` becomes `distance_squared` and `sqnorm` becomes `norm_squared`.
Fix #176 .
2016-04-17 17:26:58 +02:00
Sébastien Crozet
9a87e2360d
Implement Outer for DVec. ( #186 )
...
Fix #181 .
2016-04-17 13:20:58 +02:00
Sébastien Crozet
9e739676a7
Implement `*Assign` traits for everything.
...
Fix #184 .
2016-04-17 12:57:54 +02:00
Jason Orendorff
74fd3e1a04
Support `f64 * Vec3<f64>` and so on.
...
To be specific, support is added for `N op T<N>` where `N` is `f32` or `f64`,
`op` is one of `+` `-` `*`, and `T` is one of the `Vec`, `DVec`, `Mat`, or `DMat`
generic types. These are all cases where `T<N> op N` is already supported.
Rust does not support generic impls in this case, but `f32` and `f64` cover
many common cases.
Fixes #182 .
2016-04-17 09:25:08 +02:00
Jeroen Bollen
dea0ccc1fd
Made PntAsVec use associated types. ( #179 )
...
Fix #177
2016-04-17 09:23:37 +02:00
Sébastien Crozet
0dc3b91abd
Fix Ortho when the feature `arbitrary` is enabled.
2016-03-31 21:44:42 +02:00
Sébastien Crozet
20bb99c312
Minor documentation fixes.
...
Fix #174 .
2016-03-31 21:30:23 +02:00
Sébastien Crozet
4c58e37910
Make look_at, perspective, and orthographic projection matrices conform to computer-graphics convensions.
...
The `look_at` method itself has been split into a right-handed and a left-handed variant:
`look_at_rh` and `look_at_lh`.
Fix #171 , #158 , #88 , #79 .
2016-03-31 21:22:02 +02:00
Sébastien Crozet
91e14670ed
Add multiplications between Iso, Rot, and Sim.
2016-03-28 17:05:44 +02:00
Sébastien Crozet
5b7af11555
Add Sim/Rot, Sim/Iso, Iso/Rot multiplications.
2016-03-28 15:18:28 +02:00
Sébastien Crozet
02001667f7
Fix look_at matrices + implement Display for statically sized structures.
2016-03-28 14:56:25 +02:00
Sébastien Crozet
60c0f32e1c
Feature-gate the `VecN` structure.
...
`rustc` is has a hard time compiling it from time to time.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
fe73e8743f
Minor comment fix.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
cbbf5f138d
Remove the double-dispatch trick for Cast implementations.
...
It is obsolete now that rustc supports multiple trait implementations.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
c1ec00cfe7
Complete the documentation.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
87a80c2de6
Fix tests.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
ceed9e52bd
Implement `Arbitrary` for `VecN`.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
88fb33cf44
Remove useless or incomplete structs: `Vec0`, `Pnt0`, `Iso4`, `Rot4`.
2016-03-24 19:43:50 +01:00
Sébastien Crozet
0c8b8bfcdb
Add similarity transformations Sim2 and Sim3 (uniform scale followed by a rotation followed by a translation).
2016-03-24 19:03:40 +01:00
Sébastien Crozet
f8f4924e47
Add vector perametrizable by their sizes.
2016-03-24 19:03:29 +01:00
Sébastien Crozet
ca6026e5cb
Merge pull request #168 from arturoc/master
...
mat_macros: from_homogeneous_impl was using dimension of src not dst
2016-01-10 16:12:44 +01:00
Sébastien Crozet
d15211737a
Restore most of @oleglite Row/Col implementations lost during the last merge.
2016-01-10 16:10:14 +01:00
Sébastien Crozet
91c4b58bbb
Fix missing trait bounds when the "arbitrary" feature is enabled.
2016-01-10 15:39:54 +01:00
Sébastien Crozet
58de7f461e
DMat{1..6}: make the `Col` and `Row` implementation return a DVec{1..6} instead of a plain DVec.
...
Also adds the `DVec{1..6}::new_uninitialized(dim)` function.
2016-01-10 15:23:18 +01:00
Sébastien Crozet
1338e0c358
DMat: implement `from_row_iter` and `from_col_iter`.
...
Those create a DMat by moving its argument into an interator and collecting it.
Fix #167 .
2016-01-10 14:50:08 +01:00
Sébastien Crozet
581251d5b4
Implement dynamic matrix with a maximum size.
...
Those are named DMat1 to DMat6 and have the same relation with DMat as DVec1 to DVec6 are related
to DVec.
As a side effect, the method `to_vec` of DMat was renamed `into_vec` to be more in line with the std lib.
Addresses the second point of #100 .
2016-01-10 14:50:02 +01:00
Sébastien Crozet
3cd4221bf7
Implement `Row` and `Col` for `DMat`.
...
Fix #153 .
2016-01-10 14:49:55 +01:00
Sébastien Crozet
11b49f50c9
Implement `Mean` for `DVec`, `DVecN`, `VecN` and `MatN`.
...
Fix #166 .
2016-01-10 14:49:48 +01:00
Sébastien Crozet
5cbbc25bb2
Make vectors indexable the same way as slices.
...
This includes range indexing.
In addition, for unification, the methods `.as_slice` and `.as_mut_slice` of DVec have been renamed
to `.as_ref` and `.as_mut`.
2016-01-10 14:49:37 +01:00
arturo castro
4845a0790a
mat_macros: from_homogeneous_impl was using dimension of src not dst
2016-01-08 10:02:06 +01:00
Sébastien Crozet
4098c6c5e5
Make Iso::look_at{_z} static.
...
This did not need to access `self`.
Fix #161 .
2015-11-15 21:56:25 +01:00
Sébastien Crozet
58000e4838
Implement AsRef, AsMut, From for vectors and matrices.
...
This allows pointer conversion between arrays and vectors or matrices.
Those implementations replace the `.as_array()` and `.as_array_mut()` method.
2015-11-15 21:38:28 +01:00
Sébastien Crozet
948341685e
Add implementation of `RotationMatrix` for `UnitQuat`.
2015-11-15 21:38:23 +01:00
Daniel D
179a6560ce
Fix eigenvalue calculation for diagonal matrices
2015-11-14 15:40:35 +01:00
Sébastien Crozet
37f1a1d26c
Style fixes.
2015-10-13 22:53:19 +02:00
Daniel
c4753aaf65
Implemented QR algorithm with initial transformation to Hessenberg form and Wilkinson shift for symmetric matrices
2015-09-22 15:17:03 +02:00
Jeroen Bollen
72ce1881ce
Fixed issue #154 https://github.com/sebcrozet/nalgebra/issues/154
2015-09-15 19:47:27 +02:00
Sébastien Crozet
0bcbd4df4b
Removed unused import.
2015-09-13 23:53:28 +02:00
Antsiscool
f9d79fcf5a
Removed Display trait from Debug method for DMat.
...
DMat was unable to show using debug if the object stored in it did not implement Display.
2015-09-10 14:34:41 +10:00
Anders Kalør
043d7ab108
Fix wrong allocated vector length in RowSlice
...
The length of the returned DVec should correspond to the
the number of elements in the slice and not the number of rows in the
matrix.
2015-08-27 16:55:20 +02:00
Sébastien Crozet
0a8920f11c
Merge pull request #150 from sebcrozet/rustup
...
Fix warnings generated by the last rust-nightly.
2015-08-20 21:46:46 +02:00
Sébastien Crozet
ca3c4e73c5
Fix warnings generated by the last rust-nightly.
2015-08-20 21:41:40 +02:00
Tim Kuehn
e2c21c4ae2
Fix transpose_mut for square matrices.
...
And add a test for it.
2015-08-12 16:52:55 -07:00
Sébastien Crozet
2091cd8da6
Minor codding style fixes.
2015-08-09 14:39:45 +02:00
Daniel
89bbe0f4b4
Removed unused code
2015-08-08 17:52:16 +02:00
Daniel
dc571838bb
Added check for symmetricity of input matrix
2015-08-07 15:03:38 +02:00
Daniel
b197959e2b
Implemented Cholesky decomposition with tests
2015-08-07 14:44:25 +02:00
Arttu Ylä-Outinen
75208896a3
Fix multiplication of non-square DMats.
...
Matrices were in wrong order.
2015-07-12 10:25:43 +03:00
Sébastien Crozet
c13b0388ef
Remove implementations of `Rotation`, `Translation` and `Transformation` for the `Identity` type.
...
Because most of their methods did not make sence for the (constant) identity matrix, they were set
to `panic!` at runtime whenever the user tried to use them. Instead, it is much safer to completely
forbid their use by removing the related trait implementation.
See sebcrozet/ncollide#87 .
2015-07-07 22:40:14 +02:00
mitchmindtree
2efb30876e
Added missing ops implementations for DMat
2015-06-21 01:08:23 +10:00
mitchmindtree
51381ff84d
Allow for non-consuming std operations on DMat. Added DMat multiplication test.
2015-06-21 00:20:39 +10:00
Sébastien Crozet
44df67bde2
Fix the README examples.
2015-06-06 14:28:34 +02:00
Sébastien Crozet
410c3c9566
Add pointwise addition and subtraction for `DMat`.
...
Fix #132 .
2015-06-06 12:59:47 +02:00
Sébastien Crozet
ea86890647
Add the `RotationTo` trait to compute the delta rotation between two elements.
...
Use `::angle_between` or `.angle_to` to compute the rotation angle between two vectors/rotation
matrices/unit quaternions.
Use `::rotation_between` or `.rotation_to` to compute the rotation matrix/unit quaternion to
transform a vector/rotation matrix/uniq quaternion to another.
Fix #130 .
2015-06-01 22:39:27 +02:00
Sébastien Crozet
ca87f9eb95
Rollup of minor beaking changes.
...
Use associated types for the `Outer` trait.
Add a `Repeat` trait for constructing a multidimensional value by repeating an element.
Split the `Diag` trait into `Diag` and `DiagMut`.
Implement `RustEncodable` for `Identity`.
2015-05-25 14:47:14 +02:00
Tinco Andringa
b26a994659
This reference should not be mut
2015-05-09 16:23:53 +02:00
Sébastien Crozet
5f7b480827
Merge pull request #125 from tinco/add_neg_to_base_float
...
Add neg trait to BaseFloat
2015-05-08 23:55:00 +02:00
Tinco Andringa
83917cb4a4
Qualify the output of FloatVec Neg
2015-05-08 21:44:03 +02:00
Tinco Andringa
f0ce528903
Add neg trait to BaseFloat
2015-05-08 21:03:13 +02:00
Eduard Bopp
730dc40b01
Remove operator hacks
...
The LMul, RMul and Scalar* traits were only necessary due to language
limitations regarding trait bounds that are now gone. The Mat trait is now
expressed in terms of regular operator traits.
However, due to the removal of these traits this constitutes a breaking change.
2015-05-06 13:23:14 +02:00
arturo castro
24fa9c7826
fixes for latest rust
2015-04-23 20:26:16 +02:00