Commit Graph

11 Commits

Author SHA1 Message Date
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
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 d1a58f960c Moving row/col slicing traits to a better place 2014-05-09 23:05:23 +02:00
Vincent Barrielle 5611307b4d QR decomposition depends less on DMat internals 2014-05-09 22:14:37 +02:00
Sébastien Crozet 1eed234e08 Avoid name conflicts with the standard lib.
The `Vec` trait is renamed `AnyVec`.
The `Less`, `Greater`, `Equal` variants are renamed `PartialLess`, `PartialGreater`,
`PartialEqual`.

Those new names are not very good, so they might change in the future.
2014-04-13 10:37:39 +02:00
Sébastien Crozet becb77843e Update to the last Rust.
Version of rustc: 0.10-pre (b0ce960 2014-02-17 22:16:51 -0800)
This replaces uses of the `Orderable` trait by a `PartialOrd` trait: the `min` and `max` methods
are replaced by `inf` and `sup` methods.
Vectors do not implement the `Ord` trait any more.

Fix #4
2014-02-18 12:13:40 +01:00
Sébastien Crozet f5b0b76d8d Add the ApproxEq trait.
It is no longer part of std::num
2014-01-09 20:48:30 +01:00
Sébastien Crozet 7667d8f19a Add a double-trait-dispatch-trick based cast trait
The Cast trait replaces both MatCast and VecCast.
2013-10-09 23:10:43 +02:00
Sébastien Crozet 84212f1449 Huge api change!
Everything changed, hopefully for the best.

* everything is accessible from the `na` module. It re-export
  everything and provides free functions (i-e: na::dot(a, b) instead of
  a.dot(b)) for most functionalities.
* matrix/vector adaptors (Rotmat, Transform) are replaced by plain
  types: Rot{2, 3, 4} for rotation matrices and Iso{2, 3, 4} for
  isometries (rotation + translation).  This old adaptors system was to
  hard to understand and to document.
* each file related to data structures moved to the `structs` folder.
  This makes the doc a lot more readable and make people prefer the
  `na` module instead of individual small modules.
* Because `na` exists now, the modules `structs::vec` and
  `structs::mat` dont re-export anything now.

As a side effect, this makes the documentation more readable.
2013-10-06 18:07:17 +02:00