Commit Graph

483 Commits

Author SHA1 Message Date
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
Sébastien Crozet eb24c4063f Remove the {Any,Float}{Pnt,Vec}Ext traits.
They are meaningless and too hard to implement in an ad-hoc way to be really useful.
2014-10-30 08:38:05 +01:00
Sébastien Crozet 074c9356bf Rename: PartialOrd -> POrd, PartialOrdering -> POrdering.
This avoids name clashes with the standard library.
2014-10-30 08:38:05 +01:00
Sébastien Crozet a960afa4f9 Make `AnyVec` inherit from `Basis`.
Every vector must have a basis.
2014-10-30 08:38:05 +01:00
Sébastien Crozet 2f273d655a Rename: VecExt -> AnyVecExt, PntExt -> AnyPntExt. 2014-10-30 08:38:05 +01:00
Sébastien Crozet 25f564128b Merge pull request #29 from steveklabnik/master
fail -> panic
2014-10-30 08:23:19 +01:00
Steve Klabnik 426ba307ab fail -> panic 2014-10-30 00:25:47 -04:00
Sébastien Crozet f998368fd7 Merge pull request #28 from globin/master
Upgrade to newer rust.
2014-10-22 17:05:28 +02:00
Robin Gloster 4e4eb62ffc upgrade to newer rust 2014-10-22 13:35:17 +02:00
Sébastien Crozet e2fc8aa764 Deprecate `to_pnt`, `as_pnt` and `VecAsPnt`.
Those are meaningless. Use `na::orig() + the_vector` instead.
2014-10-20 22:35:43 +02:00
Sébastien Crozet 276bf3f999 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (222ae8b9b 2014-10-18 00:47:22 +0000).
2014-10-18 20:52:35 +02:00
Sébastien Crozet 8288ebdfab Add quaternions to the feature list. 2014-10-14 22:24:10 +02:00
Sébastien Crozet 5ba9f27530 Add quaternions.
Fix #24.
2014-10-14 22:20:49 +02:00
Sébastien Crozet 162346ab47 Fix typos. 2014-10-13 08:46:39 +02:00
Sébastien Crozet 0cf725f5f2 Add 3D orthogonal and perspective projection structures.
Fix #26.
2014-10-12 20:40:46 +02:00
Sébastien Crozet 03eda09084 Some documentation fixes.
Fix #25.
2014-10-12 10:35:56 +02:00
Sébastien Crozet b6090042ac Add a `Axpy` that implements y <- y + ax.
This is very useful for accumulations to compute, e.g. centers.
2014-10-12 09:24:16 +02:00
Sébastien Crozet de2479b70f Do not implement `Transform<Vec*> for Vec*`.
This is error prone as this is a no-op for vectors and a translation for points.
2014-10-11 00:23:10 +02:00
Sébastien Crozet 70de340498 Remove the `Iso * Vec` overload and the ability to Transform a Vector with an Iso.
This is too error prone as the user has to remember if he is using a vector or a point.
Istead, to transform a vector with an Isometry, use the internal rotation matrix of the isometry:
`iso.rotation * vector` instead of `iso * vector`.

The `Rotation` trait can also be used.
2014-10-10 22:21:05 +02:00
Sébastien Crozet bf67f079e7 Add a function `nalgebra::center(a, b)` that computes the center of two points. 2014-10-10 21:24:18 +02:00
Sébastien Crozet b3e7540b3c Delete the deprecated `na::` module. 2014-10-10 20:57:20 +02:00
Sébastien Crozet 6fb6d35980 Documentation fixes. 2014-10-10 20:56:40 +02:00
Sébastien Crozet e852eb4783 Fix the implementation of `ToHomogeneous` for `Iso*`. 2014-10-10 20:56:24 +02:00