Commit Graph

1405 Commits

Author SHA1 Message Date
Mike Dilger 4c1cfb03cf ApproxEq trait enhanced with ULPs method of specifying closeness:
approx_eq_ulps() allows specification of epsilon as an integer number
  of Units in the Last Place (ULPs) difference between the two floating
  point values

  default approx_ulps() is set to 8.

  approx_eq() function continues to use epsilon method, although I
  recommend further commits and a migration towards the ULPs method.
2015-01-01 10:12:27 +13:00
Sébastien Crozet 73c49884c3 Fix benches. 2014-12-27 11:15:13 +01:00
Sébastien Crozet ec44d197b2 Merge pull request #59 from bfops/master
Fix Encodable/Decodable deprecation warnings
2014-12-26 06:46:42 +01:00
Ben Foppa 0ba92a51bd Fix Encodable/Decodable deprecation warnings 2014-12-25 16:05:33 -05:00
Sébastien Crozet bcd425e12a Merge pull request #57 from tomaka/master
Update for rustc
2014-12-23 20:20:46 +01:00
Pierre Krieger 258e7465d4 Fix Neg trait taking self instead of &self 2014-12-23 19:09:06 +01:00
Pierre Krieger 7bfad8e118 Rename std::slice::Items -> std::slice::Iter 2014-12-23 19:01:49 +01:00
Sébastien Crozet 8a291b8cce Merge pull request #56 from aepsil0n/macro_item_semicolons
Add trailing ';' to all item macros
2014-12-20 00:44:32 +01:00
Eduard Bopp e3c2d46f03 Add trailing ';' to all item macros
This is a fix for the latest nightly, see
https://github.com/rust-lang/rust/pull/19984.
2014-12-19 15:33:01 +01:00
Sébastien Crozet fec0c749d1 Merge pull request #55 from sebcrozet/rustup
Update to the last rust-nightly.
2014-12-17 23:50:25 +01:00
Sébastien Crozet a92c681d01 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (42deaa5e4 2014-12-16 17:51:23 +0000).

Fix #54.
2014-12-17 23:39:47 +01:00
Sébastien Crozet 6c431ff666 Merge pull request #53 from aepsil0n/update_nightlies
Update to latest Rust
2014-12-12 07:47:49 +01:00
Eduard Bopp 11a2b84ee0 Derive Copy wherever sensible
Copy is now opt-in, see [1]. To keep the current library functionality it is
derived for all sensibly copyable types.

[1]: 096a28607f
2014-12-10 15:37:49 +01:00
Eduard Bopp 223dc316ad Update to latest Rust 2014-12-10 15:09:38 +01:00
Sébastien Crozet 4abbe6803e Merge pull request #51 from aepsil0n/oop_style_traits
Use object-oriented style for trait methods
2014-12-02 11:27:39 +01:00
Eduard Bopp edaeab72ac Use object-oriented style for trait methods
Wherever sensible the geometric traits now take `&self` arguments, so that
implementations can be invoked as instance methods instead of static methods.
This makes some idioms easier to express and generally allows for greater
flexibility as the restructured methods can still be invoked like static
methods.

Fixes #39.
2014-12-01 19:44:43 +01:00
Sébastien Crozet 3b44441ce9 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (fac5a0767 2014-11-26 22:37:06 +0000).
2014-11-30 15:47:31 +01:00
Sébastien Crozet 9d5d3f49f9 Do not mantion the double-dispatch on the doc. 2014-11-26 14:36:50 +01:00
Sébastien Crozet b7af46377d Merge pull request #49 from sebcrozet/multidispatch
Replace the double dispatch trick by multidispatch!
2014-11-26 14:35:02 +01:00
Sébastien Crozet d296bebfac Replace the double dispatch trick by multidispatch!
Fix #38.
2014-11-26 14:23:30 +01:00
Sébastien Crozet 3317e057f5 Add float constants to `BaseFloat`.
Fix #42.
2014-11-25 11:19:31 +01:00
Sébastien Crozet 40c14ace39 Make `from_array`-like methods static.
Fix #45.
2014-11-25 11:00:26 +01:00
Sébastien Crozet 313d6f92d1 Merge pull request #43 from aepsil0n/assert_approx_eq_macros
Implement assertion macros for ApproxEq
2014-11-23 16:58:56 +01:00
Eduard Bopp 956c5cdecc Implement assertion macros for ApproxEq
These macros yield readable error messages as test assertions for ApproxEq
types. They can be invoked as:

    assert_approx_eq!(a, b);
    assert_approx_eq_eps!(a, b, eps);

Fixes #40.
2014-11-23 14:15:56 +01:00
Sébastien Crozet 2e3ae62fd5 Add metadatas for crates.io
cc #37.
2014-11-22 19:52:06 +01:00
Sébastien Crozet b1a58e9ebe Merge pull request #35 from aepsil0n/to_homogeneous_self
Have ToHomogeneous use &self in method signature
2014-11-22 16:50:31 +01:00
Eduard Bopp 733219d728 Have ToHomogeneous use &self in method signature
I find makes the syntax a bit lighter.
2014-11-22 12:01:45 +01:00
Sébastien Crozet cb720dc86c Merge pull request #34 from aepsil0n/translate_doc
Fix erroneous Translate documentation
2014-11-21 16:10:14 +01:00
Eduard Bopp 2f3b68bebb Fix erroneous Translate documentation
Looks like it's been copied & pasted without adapting.
2014-11-21 15:59:26 +01:00
Sébastien Crozet bab38ca6d5 Add conversion from/to arrays for matrices and vectors.
Use `.as_array()`, `.as_array_mut()`, `.from_array_ref()`, `.from_array_mut()`.
Fix #33.
2014-11-21 11:34:46 +01:00
Sébastien Crozet 7d65e0a143 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (e09d98603 2014-11-18 23:51:43 +0000).
2014-11-20 09:56:26 +01:00
Sébastien Crozet d8dfedbf99 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (336349c93 2014-11-17 20:37:19 +0000).
2014-11-19 12:11:32 +01:00
Sébastien Crozet 77348f668f Use our own traits instead of the deprecated ones.
We might switch to bjz/num-rs eventually (#32), but in the mean time we just re-declare the
deprecrated traits in nalgebra.
2014-11-16 14:42:18 +01:00
Sébastien Crozet 39b9d20717 Quick update to the last rust-nightly.
This is just a quick-fix so that nalgebra compiles.
This does not fix the deprecation warnings!

Version of rustc: 0.13.0-nightly (d91a015ab 2014-11-14 23:37:27 +0000).
2014-11-15 15:47:59 +01:00
Sébastien Crozet 15d1fa0b8b Fix warnings. 2014-11-07 19:23:46 +01:00
Sébastien Crozet 83f25e0552 Add more benchmarks. 2014-11-07 16:15:56 +01:00
Sébastien Crozet 226b115f1e Overload `DVec * DVec -> DVec` and `DVec / Dvec -> DVec`.
Fix #31.
2014-11-06 23:17:35 +01:00
Sébastien Crozet a2848e6e18 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (63c4f22f2 2014-11-05 22:31:44 +0000).
2014-11-06 14:52:52 +01:00
Sébastien Crozet 3834913402 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (3327ecca4 2014-11-01 22:41:48 +0000).
2014-11-02 22:47:11 +01:00
Sébastien Crozet eb745df4bc Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (221fc1e3c 2014-10-31 02:27:15 +0000).
2014-10-31 17:40:47 +01:00
Sébastien Crozet 36d3e88cb0 Do not automatically impl Scalar{Mul,Div,Add,Sub}.
This makes them implementable without using the double dispatch trick.
2014-10-30 09:21:22 +01:00
Sébastien Crozet 93b184815f Always use `Cast<f64>` instead of `Cast<f32>`. 2014-10-30 09:21:22 +01:00
Sébastien Crozet 6b4b25acd4 Basis: add a method to compute the i-th element of the canonical basis. 2014-10-30 09:21:20 +01:00
Sébastien Crozet 171576e2a0 Move the `eigen_qr` function behind the `EigenQR` trait.
This simplifies generic programming.
2014-10-30 09:21:20 +01:00
Sébastien Crozet 27be1f0651 Add a `SquareMat` trait for square matrices. 2014-10-30 09:21:20 +01:00
Sébastien Crozet 6a194b2b62 Rename: Any{Vec,Pnt} to Num{Vec,Pnt} + do not impl them automatically.
Instead, implement them manually. This clarifies error messages for the users.
2014-10-30 09:21:19 +01:00
Sébastien Crozet 628aac0961 Coding style fix. 2014-10-30 09:21:18 +01:00
Sébastien Crozet a0fffe93a9 Move the `.shape()` method to its own trait: `Shape`. 2014-10-30 09:21:18 +01:00
Sébastien Crozet 3354ffc37b Make FloatPnt and FloatVec derive from `Index`.
The point it that `Index` provides the i-th element decomposed into the trivial basis of their
associated vector spaces.
2014-10-30 08:38:05 +01:00
Sébastien Crozet 2b23446d54 Matrix Index/IndexMut implementation: return an element instead of a column.
There is no reason why indexing would prefer returning a column instead of a line. Instead, we
return an element, and let the user use the `Col` and `Row` traits istead.
2014-10-30 08:38:05 +01:00