Commit Graph

157 Commits

Author SHA1 Message Date
sebcrozet d759db682c Make the alloc feature actually work. 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 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
Sébastien Crozet 9bd2890875 Add documentation. 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 adbb7d989e Add aliases for matrix slices. 2018-02-03 13:59:05 +01: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 afef66227e Merge branch 'master' into abomonation 2017-08-15 19:18:39 +02:00
Sébastien Crozet 3e349b80cf Implement serde traits for all linalg structs. 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 3f70af97dd Add the most common matrix decompositions. 2017-08-15 19:07:18 +02:00
Eduard Bopp e09af0ca82 Implement Abomonation for remaining types 2017-08-14 14:32:02 +02:00
Eduard Bopp 65fa4cf740 Implement Abomonation for static matrices 2017-08-14 12:07:06 +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
George Burton 7b17fa58e8 update crate documentation to point to latest 2017-05-20 19:39:02 +01:00
Sébastien Crozet cbbe1a2aee Fix html_root_url. 2017-04-09 13:19:27 +02: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
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 d29ff53329 Implement traits from the algebra crate. 2016-08-21 21:35:56 +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 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
Sébastien Crozet df872f407d Replace "col" by "column".
Related to #176.
2016-04-18 08:32:12 +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
Jeroen Bollen dea0ccc1fd Made PntAsVec use associated types. (#179)
Fix #177
2016-04-17 09:23:37 +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 c1ec00cfe7 Complete the documentation. 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 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
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
Sébastien Crozet ca3c4e73c5 Fix warnings generated by the last rust-nightly. 2015-08-20 21:41:40 +02:00
Daniel b197959e2b Implemented Cholesky decomposition with tests 2015-08-07 14:44:25 +02:00
Sébastien Crozet 44df67bde2 Fix the README examples. 2015-06-06 14:28:34 +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
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
Sébastien Crozet 36223991c1 Remove all deprecated functions/traits. 2015-04-18 14:58:38 +02:00
Sébastien Crozet 313ca1b8ae Use the `Zero` and `One` traits from the `num` crate.
Remove our own definitions of those traits.
Also fixes test-related attributes to make them compile again.
2015-04-18 14:38:34 +02:00
Eduard Bopp e453bfed47 Use Float trait from num crate 2015-04-04 17:53:25 +02:00
Anders Kaseorg 005aebc498 Remove #![feature(core)]
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:53:55 -04:00
Anders Kaseorg 1cb3314064 Add type annotation required by rustc 2015-03-31
Resolves this error, which is fallout from
https://github.com/rust-lang/rust/pull/23673:

src/structs/dmat.rs:501:43: 501:74 error: type annotations required: cannot resolve `<f64 as core::ops::Div<_>>::Output == f64` [E0284]
src/structs/dmat.rs:501         let normalizer: N    = Cast::from(1.0f64 / Cast::from(self.nrows));
                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-03-31 17:49:09 -04:00
Eduard Bopp ef4a52d53b Remove unused feature unboxed_closures 2015-03-29 13:45:33 +02:00
Eduard Bopp de2351a441 Only use test feature in test configuration 2015-03-29 13:45:33 +02:00