Commit Graph

144 Commits

Author SHA1 Message Date
Sébastien Crozet
c708632036 Merge pull request #70 from bfops/fnmut
Change Fn to FnMut
2015-01-07 22:45:39 +01:00
Ben Foppa
f1fe7315f0 Change Fn to FnMut 2015-01-07 15:16:56 -05:00
Ben Foppa
bd7b4f287f rustup 2015-01-07 15:14:40 -05:00
Ben Foppa
1429cbf34e Remove obsolete closure syntax 2015-01-06 18:46:50 -05:00
Sébastien Crozet
014aabb856 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (c6c786671 2015-01-04 00:50:59 +0000).
2015-01-04 19:03:28 +01:00
Sébastien Crozet
0e2563a88f Merge pull request #61 from mikedilger/ulps
ApproxEq trait enhanced with ULPs method of specifying closeness:
2015-01-04 10:17:54 +01:00
Sébastien Crozet
018d4a2ec0 Remove glob imports. 2015-01-04 09:39:32 +01:00
Connorcpu
a18a53b82e Updated to latest rust master 2015-01-03 13:48:10 -08:00
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
Ben Foppa
0ba92a51bd Fix Encodable/Decodable deprecation warnings 2014-12-25 16:05:33 -05: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
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
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
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
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
3317e057f5 Add float constants to BaseFloat.
Fix #42.
2014-11-25 11:19: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
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
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
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
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
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
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
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
5ba9f27530 Add quaternions.
Fix #24.
2014-10-14 22:20:49 +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
6fb6d35980 Documentation fixes. 2014-10-10 20:56:40 +02:00
Sébastien Crozet
7e9bb98823 Add to_pnt and to_vec methods. 2014-10-10 12:19:37 +02:00
Sébastien Crozet
924d8269d8 Add points.
This adds the Pnt{1,2,3,4,5,6} structures.
This adds the traits:
  − AnyPnt
  − FloatPnt
  − PntExt
  − FloatPntExt
  − Orig (to return the zero point)
  − PntAsVec
  − VecAsPnt
This adds operator overloading:
  − Pnt + Vec
  − Pnt - Vec
  − Pnt * Scalar
  − Pnt / Scalar
  − Pnt + Scalar
  − Pnt - Scalar
  − Iso * Pnt
  − Rot * Pnt
  − Pnt * Iso
  − Pnt * Rot
This changes some behavior:
  − Iso multiplication with a Vec does not translate the vector any more.
  − ToHomogeneous adds a 0.0 at the end of a Vec and a 1.0 at the end of a Pnt.
  − FromHomogeneous performs w-normalization on a Pnt, but not on a Vec.
  − The Translate<Vec> trait is never implemented (i-e. a Vec is not to be translated).

cc #25
2014-10-10 11:45:20 +02:00
Sébastien Crozet
314f0c0043 Add na::eigen_qr that performs an eigendecomposition using the qr algorithm. 2014-08-16 15:34:34 +02:00
Sébastien Crozet
663f8b3ccb Add a Diag to build, get and set a matrix diagonal. 2014-08-16 13:22:53 +02:00
Sébastien Crozet
7d6884c3df Add a Det trait to compute the determinant + implement it for Mat{1,2,3}. 2014-08-11 19:54:13 +02:00
Sébastien Crozet
2ff660dfe1 Add a ScalarMul and a ScalarDiv trait.
Those might be useful to overcome rust limitations wrt operator overloading.
2014-07-13 11:43:05 +02:00
Sébastien Crozet
5066d6b9de Update to the last rust-nightly.
Version of rustc: 0.11.0-pre-nightly (918dbfe 2014-06-02 20:51:30 -0700).
2014-06-03 22:37:46 +02:00
Sébastien Crozet
f6c597f102 Update to the last rust-nightly.
Version of rustc: 0.11.0-pre-nightly (faa7ba7 2014-05-31 01:06:40 -0700).

Main changes:
        * `cmp::Ord` -> `cmp::PartialOrd`
        * `cmp::Eq`  ->  `cmp::PartialEq`

Note that `na::PartialOrd` is not the same as `cmp::PartialOrd`
(which lacks a lot of partial ordering operators).
2014-06-01 15:22:11 +02:00
Vincent Barrielle
6ad11edf9b more generic QR: generalize the impl of the Indexable trait
This allows the implementation of householder reflection without relying
on knowledge of DVec. This required a new member in the Indexable trait:
the shape() function, which returns the maximum index available.
2014-05-11 20:05:08 +02:00
Vincent Barrielle
a213a3da93 fixing style issues 2014-05-10 12:48:25 +02:00