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
Sébastien Crozet
1b6a44e8fb
Update to the last rust-nightly.
...
Version of rustc: 1.0.0-nightly (4874ca36f 2015-01-23 00:18:57 +0000).
2015-01-23 21:48:10 +01:00
Sébastien Crozet
08049e515e
Coding style fixes.
2015-01-17 22:54:57 +01:00
arturo
f82cb8002d
impl BaseNum for integers
2015-01-16 11:46:56 +01:00
Brett Levin
8c205ea2d0
fix warning from unneeded old_orphan_check
2015-01-10 11:31:26 -08:00
Eduard Bopp
1103996b83
Implement Arbitrary for (almost) all types
...
Rot4 and Iso4 had to be left out, since Rot4 apparently lacks a working
constructor.
Thereby (almost) all types in nalgebra can now be used for quickcheck-style
testing.
"arbitrary" is now a conditionally compiled feature that contains these impls
adding a dependency on quickcheck.
2015-01-10 01:36:13 +01:00
Sébastien Crozet
ce0178785c
Fix automatic text replacement on comments.
2015-01-09 23:01:46 +01:00
Sébastien Crozet
53c80bc72b
Allow unstable items.
...
Some of them don't have any stable equivalent yet.
2015-01-09 22:51:17 +01:00
Sébastien Crozet
4b47b1e98a
Use slice and range syntax when possible.
2015-01-09 22:46:26 +01:00
Sébastien Crozet
2d4e1bfc95
Fix warnings related to the POrd implementation.
2015-01-09 22:34:57 +01:00
Sébastien Crozet
e6e099b7c4
Replace int, and uint, by isize and usize.
2015-01-09 22:26:05 +01:00
Sébastien Crozet
59316d7ca1
Remove tabs.
2015-01-09 22:22:34 +01:00
arturo
fc1fd16e20
fixes compiling on alpha 1.0
2015-01-09 21:55:15 +01:00
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
Pierre Krieger
89edd64204
Update for Rustc
2015-01-05 15:12:06 +01:00
Sébastien Crozet
e94061ed10
Fix an unconstrained type in `na::shape`.
2015-01-04 19:43:04 +01: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
Eduard Bopp
8f7aac0711
Update to latest Rust
...
The version is rustc 0.13.0-dev (cd614164e 2015-01-02 02:31:12 +0000).
The fixed array syntax was changed from [x, ..3] to [x; 3].
2015-01-03 15:19:52 +01:00
Ben Foppa
b701ca3b58
Update for last rustc of 2014!
2015-01-01 17:23:35 -05:00
Mike Dilger
122c95f2b4
fix macro
2015-01-01 10:41:07 +13: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
223dc316ad
Update to latest Rust
2014-12-10 15:09:38 +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
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
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
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
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
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
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
Steve Klabnik
426ba307ab
fail -> panic
2014-10-30 00:25:47 -04: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
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
ba18f5aa70
Deprecate `na::`, move all reexport to the root crate.
...
This also moves the tests and benches to cargo-complient folders.
Fix #21 .
2014-09-28 19:22:57 +02:00
Sébastien Crozet
8f89ac421c
Update to the last rust.
...
Version of rustc: rustc 0.12.0-nightly (d64b4103d 2014-09-26 21:47:47 +0000).
2014-09-27 09:54:03 +02:00
Sébastien Crozet
a9c7fe7420
Fix the matrix inversion test.
...
This prevent the test from failing when the matrix is non-inversible.
2014-09-19 23:53:36 +02:00
Sébastien Crozet
086088a0ed
Fix the implementation of `Row` for fixed-size matrices.
...
Matrices are column-major.
2014-09-19 23:51:27 +02:00
Sébastien Crozet
1945cb09f2
Merge pull request #20 from bjz/warnings
...
Fix warnings
2014-09-19 23:43:46 +02:00
Brendan Zabarauskas
d3abbfcd4c
Fix warnings
2014-09-18 15:20:04 +10:00
Brendan Zabarauskas
b6959ef913
Implement index operators
...
Closes #18
2014-09-18 12:23:52 +10:00
Ben Foppa
6c8f14966c
update for rustc 21d1f4d7c
2014-09-15 21:30:36 -04:00
Sébastien Crozet
560dff3891
Update to the last rust-nightly.
...
Version of rustc: 0.12.0-pre-nightly (2e92c67dc 2014-08-28 23:56:20 +0000).
2014-08-29 21:35:42 +02:00
Sébastien Crozet
c408d5a0b2
Update to the last rust-nightly.
...
Version of rustc: 0.12.0-pre-nightly (01ec6fab2 2014-08-18 00:46:10 +0000).
2014-08-18 19:35:47 +02:00
Sébastien Crozet
ff95e2a9d8
Remove the shifting from the qr algorithm.
2014-08-17 22:42:16 +02:00
Sébastien Crozet
844092205e
Do not compute the matrix inverse if the determinant is near-zero.
2014-08-17 22:41:55 +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