Commit Graph

902 Commits

Author SHA1 Message Date
Jack Wrenn
0f66403cbb Rename MatrixVec to VecStorage.
See #470.
2018-12-06 20:51:29 +01:00
Jack Wrenn
b83c3b857b Rename MatrixArray to ArrayStorage.
See #470.
2018-12-06 20:51:29 +01:00
sebcrozet
c69ab193be Fix cornercase for Rotation3 conversion to euler angles.
Fix #494
2018-12-04 22:04:07 +01:00
Jack Wrenn
72d89c75ae Group swizzle methods by dimensional requirement.
This is semantically equivalent, but improves the rendered documentation.
2018-11-24 08:03:54 +01:00
sebcrozet
f972d1dd7e Small dimension check fix for swizzling. 2018-11-23 07:01:35 +01:00
Jack Wrenn
accdd51faf Implement Into<Vec<N>> for MatrixVec<N, R, C> 2018-11-23 07:01:15 +01:00
Jack Wrenn
74ff6ae199 Implement Point swizzling 2018-11-23 06:34:00 +01:00
Jochen Görtler
85bfae5390 RFC: Add comment in Rotation::to_homogeneous() 2018-11-20 17:47:29 +01:00
Sébastien Crozet
bc9c74cbb6 RFC: Remove redundant Dim trait
Co-Authored-By: grtlr <grtlr@users.noreply.github.com>
2018-11-20 17:47:29 +01:00
Jochen Görtler
72f61918f4 RFC: Fix type annotations 2018-11-20 17:47:29 +01:00
Jochen Görtler
3ac5efeac1 WIP: to_homogeneous for MatrixN 2018-11-20 17:47:29 +01:00
Jim Turner
267d9760bd Add as_ptr and as_mut_ptr methods
This is useful for moving around a matrix/slice in unsafe code and for
converting slices to other types (e.g. `ndarray::ArrayView`).
2018-11-19 16:53:46 -05:00
Jack Wrenn
c36416b9c0 Add ShapeConstraint for Extend<Vector<_,_,_>> implementations. 2018-11-18 06:36:04 +01:00
Jack Wrenn
0ed67d0470 Implement Extend<Vector<_,_,_>> for Matrix.
Extend a `Matrix` with columns drawn from an iterator of `Vector`s.
2018-11-18 06:36:04 +01:00
Jack Wrenn
0f29a3ae0a Simplify documentation examples for Extend implementations. 2018-11-18 06:36:04 +01:00
Jack Wrenn
f711c107ca Implements Extend for Matrix<N, Dynamic, U1>.
Extends a `Vector` with new rows populated from an iterator.

Inspired by https://github.com/rustsim/nalgebra/issues/446#issuecomment-437931790
2018-11-18 06:36:04 +01:00
Jack Wrenn
c3dd709c0a Implements Extend for Matrix<N, Dim, Dynamic>.
Extends a matrix with new columns populated from an iterator.
2018-11-18 06:36:04 +01:00
sebcrozet
bd7d0be7a8 Remove over-restrictive assertions on Orthographic3 construction + add doc-tests.
Fix #365
2018-11-10 12:57:47 +01:00
sebcrozet
69490c2cea Add doc-tests to Transform. 2018-11-10 11:20:34 +01:00
sebcrozet
b6d741c593 Document similarity_construction.rs. 2018-11-10 11:20:34 +01:00
sebcrozet
a8a9a3082a Add doc-tests to unit_complex_construction. 2018-11-10 11:20:34 +01:00
sebcrozet
ff5b64e35d Add doc-tests to unit_complex.rs. 2018-11-10 11:20:34 +01:00
sebcrozet
536923f9fc Add doc-tests to rotation_specialization. 2018-11-10 11:20:34 +01:00
sebcrozet
80fc057ead Add doc-tests to rotation_construction. 2018-11-10 11:20:34 +01:00
sebcrozet
7d9d47d9ea Complete doc-tests of rotation.rs. 2018-11-10 11:20:34 +01:00
sebcrozet
c24caa311f Add some documentation for Rotation. 2018-11-10 11:20:34 +01:00
Jack Wrenn
9e763bbcff doc tests for from_vec_generic and from_vec 2018-11-08 06:42:55 +01:00
Jack Wrenn
d6fb07dad2 Introduce from_vec, to complement from_vec_generic 2018-11-08 06:42:55 +01:00
Jack Wrenn
68bdb427cf Rename: from_vec -> from_vec_generic 2018-11-08 06:42:55 +01:00
Jack Wrenn
ff4e44a8ed Introduces a from_vec constructor for MatrixMN.
Addresses #378.

The implementation of `from_vec` simply wraps a call to
`from_iterator_generic`. Because the standard library's implementation
of `into_iter` is specialized for the `.into_iter().collect<Vec<_>>()`
case (see https://github.com/rust-lang/rust/issues/46084#issuecomment-345524508),
this is equivalent to re-using the original Vec as storage.
2018-11-08 06:42:55 +01:00
sebcrozet
b4b66bddd2 Add comment about cs matrix multiplication implementation. 2018-11-06 19:25:27 +01:00
sebcrozet
f43ab963ad Fix matrix market grammar. 2018-11-06 19:25:16 +01:00
Antony Lesage
c370564dba Fix MatrixMN::from_distribution (#463) 2018-11-06 19:24:20 +01:00
sebcrozet
8341ec2f10 Run rustfmt. 2018-11-06 18:32:20 +01:00
sebcrozet
ed07b78b97 Add matrixmarket parser. 2018-11-06 18:31:04 +01:00
sebcrozet
383a18f083 Improve CsMatrix multiplaction performances. 2018-11-06 18:27:43 +01:00
sebcrozet
538e18b3e9 Ensure the output of addition is sorted. 2018-11-05 16:44:59 +01:00
sebcrozet
748cfeea66 Ensure the output of multiplication and triangular solve are sorted. 2018-11-05 16:38:43 +01:00
sebcrozet
c3e8112d5e Add implementation of the left-looking cholesky decomposition. 2018-11-04 07:10:43 +01:00
sebcrozet
a7acd5b832 Fix missing type annotation. 2018-11-01 11:07:36 +01:00
sebcrozet
2119c1adf5 Complete documentation for quaternions. 2018-11-01 11:07:36 +01:00
sebcrozet
911ddca588 Implement From<Vector> for Translation and Quaternion. 2018-11-01 11:07:36 +01:00
sebcrozet
96db8e564a Complete the documentation for Translation. 2018-11-01 11:07:36 +01:00
sebcrozet
1dd6bcce6a Add doc-tests to most of quaternion.rs. 2018-11-01 11:07:36 +01:00
sebcrozet
98b0b842e9 Remove the inherent clone method from points.
Fix #458.
2018-11-01 10:22:10 +01:00
sebcrozet
50d0b64924 Avoid bound-checking on cholesky decomposition. 2018-10-30 17:45:59 +01:00
sebcrozet
9bf1d0280d Fix cholesky computation. 2018-10-30 17:29:32 +01:00
sebcrozet
0ba23da475 Make transform_vector and transform_point public. 2018-10-30 07:55:08 +01:00
sebcrozet
19d2bc0b7c Fix typo. 2018-10-30 07:55:08 +01:00
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 MatrixSlices 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