Commit Graph

420 Commits

Author SHA1 Message Date
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
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
Eduard Bopp 9d428be8b4 Rename frac_2_sqrtpi -> frac_2_sqrt_pi 2015-04-04 17:05:30 +02:00
Anders Kaseorg e3962e8775 FRAC_2_SQRTPI was renamed to FRAC_2_SQRT_PI
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-04 16:58:11 +02:00
Eduard Bopp 49abb42980 Merge pull request #114 from andersk/neg
Remove Neg from BaseNum
2015-04-04 16:44:29 +02:00
Anders Kaseorg d47cdb5594 Remove Neg from BaseNum
As per https://github.com/rust-lang/rust/pull/23945, Neg is no longer
implemented for unsigned types.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-03 18:59:18 -04: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 165e095a57 Remove use of num::cast
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:53:55 -04:00
Anders Kaseorg c1cbf7465d Remove use of PI_2
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:10:36 -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
Eduard Bopp 70b4def5cc Stop using unstable std_misc feature
It was only used for `Float::{max_value, min_value}` in non-necessary places,
so for now this helps stabilization for Rust 1.0.
2015-03-29 13:45:33 +02:00
Eduard Bopp df93ed2d1c Replace quoted crate declarations 2015-03-29 13:00:09 +02:00
Eduard Bopp ec5ece46ca Use slicing syntax instead of deprecated methods 2015-03-29 12:57:16 +02:00
Sébastien Crozet 0988b837dc Update to the last rust-nighly.
Version of rustc: rustc 1.0.0-nightly (123a754cb 2015-03-24).
2015-03-25 22:39:06 +01:00
Pierre Krieger 7c415692c3 Update for rustc 2015-03-23 14:38:48 +01:00
Jameson Ernst 9b8076e179 Add #[repr(C)] to structs likely to be used in ffi 2015-03-01 12:50:17 -08:00
Jameson Ernst caca330995 Fix deprecated closure syntax 2015-03-01 12:41:13 -08:00
Jameson Ernst b805f9d829 Fix macros for nightly 2015-03-01 12:34:42 -08:00
Eduard Bopp bd593a923c Fix a number of warnings
Mostly related to the `us` → `usize` suffix renaming. It turns out that none of
the suffixes are required any more, as the type inference appears to have
improved in that regard. There were also parantheses around range terms that
are not required any more.

Finally the `[]` syntax has been deprecated and thereby removed.
2015-02-21 15:07:50 +01:00
Ben Foppa 8d28d7dbd6 FromIterator changes and phantom type annotations. 2015-02-20 18:02:27 -05:00
Eduard Bopp b2a4918376 Fix bug in UnitQuat construction from Quat 2015-02-17 13:54:56 +01:00
Eduard Bopp d368270ebc Fix iterator mutability
For loops now consume iterators.
2015-02-17 13:45:25 +01:00
Eduard Bopp f14f240aa7 Migrate random generation to use crates.io rand
The standard library random generation facilities have been deprecated in
favour of a new crate on crates.io.
2015-02-17 13:45:16 +01:00
Peter Atashian 6b71de4665 Update rust
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-02-08 02:28:57 -05:00
Sébastien Crozet 316298f825 Merge pull request #87 from aepsil0n/workaround-ice
Workaround internal compiler error.
2015-02-04 22:21:51 +01:00
Eduard Bopp 27bfe381d9 Workaround internal compiler error
The associated type bound here was not parsed correctly. This is likely due to
the ICE described in rust-lang/rust#20413.
2015-02-03 19:18:58 +01:00
Eduard Bopp 3107dd607b Rename similar in-place and copy methods
Fixes #52.

This renames pairs of methods like `normalize_cpy`, `normalize` to `normalize`
and `normalize_mut`. Note that the previous in-place operations had the same
name that now belongs to the copy operations. Therefore this is a breaking
change.

On a similar note, the `Quat::conjugate` method was also renamed to
`conjugate_mut` and a new copying method has taken its place. This appears to
be a similar issue (apart from the lack of the copy operation) and thus was
dealt with here, too.
2015-02-01 23:23:57 +01:00
Sébastien Crozet 39fd7c1ae7 Silence warnings and replace `Show` by `Debug`. 2015-02-01 16:15:55 +01:00
Eduard Bopp 5ca3e41375 Implement AssertEq for reference types
Just as the standard library's PartialEq is implemented for reference types,
the ApproxEq trait should be implemented on them as well. This is mostly an
ergonomic improvement for certain testing situations, where a method yields a
reference. For non-copy types it allows using the assert_approx_… macros, which
would otherwise not be possible.
2015-01-25 19:51:07 +01:00
Zbigniew Siciarz 6d00860ef8 Fix Debug implementation for DMat. 2015-01-24 18:24:35 +01:00