Commit Graph

219 Commits

Author SHA1 Message Date
Andreas Longva a52b079578 Relax invertibility test in try_inverse()
The previous implementation of try_inverse() used an approximate
check of the determinant against 0 for small matrices to
determine if the matrix was invertible. This is not a reliable test,
and may fail for perfectly invertible matrices. This change
simply makes the test criterion an exact comparison instead.
2017-04-28 19:11:33 +02:00
Andreas Longva 9489e8f97e Add basic tests for Matrix::try_inverse 2017-04-28 19:11:33 +02:00
Sébastien Crozet e6ee11617a Add a method to compute the trace of a matrix.
Fix #231.
2017-03-19 22:44:08 +01:00
Sébastien Crozet d6285e1165 Implement AsRef, AsMut, Into, From. 2017-02-18 13:44:03 +01:00
Sébastien Crozet 086e6e719f Doc + slerp + conversions. 2017-02-12 18:17:09 +01:00
Sébastien Crozet 377f8b5596 Fix travis.yml. 2016-12-04 23:17:27 +01:00
Sébastien Crozet 99b6181b1e Complete library rewrite.
See comments on #207 for details.
2016-12-04 22:47:36 +01:00
Sébastien Crozet 89c745fa17 Fix &DMatrix - DMatrix.
Fix #203.
2016-09-06 19:42:28 +02:00
Dimitri Sabadie 4afb2ff476 Fixed tests (#198). 2016-08-26 11:00:34 +02:00
Sébastien Crozet c4728a33d4 Fix quaternion polar decomposition. 2016-08-16 12:40:39 +02:00
Sébastien Crozet 9c4bff1f85 Rename methods starting with `new_with_` to `from_`. 2016-08-16 10:48:41 +02:00
Dimitri 'phaazon' Sabadie 1fdd8979af Fixed Zero and One for Quaternion. 2016-07-30 14:08:55 +02:00
Dimitri Sabadie f9c1a2fd98 Added a test for Quaternion::exp(). 2016-07-29 18:02:37 +02:00
Sébastien Crozet df872f407d Replace "col" by "column".
Related to #176.
2016-04-18 08:32:12 +02:00
Sébastien Crozet 0c84d18850 Substitute: diag -> diagonal. 2016-04-17 19:47:56 +02:00
Sébastien Crozet e6156727f2 Use full names for everything.
Note that `sqdist` becomes `distance_squared` and `sqnorm` becomes `norm_squared`.

Fix #176.
2016-04-17 17:26:58 +02:00
Sébastien Crozet 9a87e2360d Implement Outer for DVec. (#186)
Fix #181.
2016-04-17 13:20:58 +02:00
Sébastien Crozet 9e739676a7 Implement `*Assign` traits for everything.
Fix #184.
2016-04-17 12:57:54 +02:00
Sébastien Crozet 4c58e37910 Make look_at, perspective, and orthographic projection matrices conform to computer-graphics convensions.
The `look_at` method itself has been split into a right-handed and a left-handed variant:
`look_at_rh` and `look_at_lh`.

Fix #171, #158, #88, #79.
2016-03-31 21:22:02 +02:00
Sébastien Crozet 91e14670ed Add multiplications between Iso, Rot, and Sim. 2016-03-28 17:05:44 +02:00
Sébastien Crozet 5b7af11555 Add Sim/Rot, Sim/Iso, Iso/Rot multiplications. 2016-03-28 15:18:28 +02:00
Sébastien Crozet 02001667f7 Fix look_at matrices + implement Display for statically sized structures. 2016-03-28 14:56:25 +02:00
Sébastien Crozet 87a80c2de6 Fix tests. 2016-03-24 19:44:08 +01:00
Sébastien Crozet f8f4924e47 Add vector perametrizable by their sizes. 2016-03-24 19:03:29 +01:00
Sébastien Crozet bfd97beffe Merge branch 'misc' 2016-01-10 15:46:06 +01:00
Sébastien Crozet 3cd4221bf7 Implement `Row` and `Col` for `DMat`.
Fix #153.
2016-01-10 14:49:55 +01:00
Sébastien Crozet 5cbbc25bb2 Make vectors indexable the same way as slices.
This includes range indexing.
In addition, for unification, the methods `.as_slice` and `.as_mut_slice` of DVec have been renamed
to `.as_ref` and `.as_mut`.
2016-01-10 14:49:37 +01:00
Oleg Beloglazov c4bce82290 Implement Row & Col Traits for DMat 2016-01-10 16:03:04 +03:00
Daniel D 179a6560ce Fix eigenvalue calculation for diagonal matrices 2015-11-14 15:40:35 +01:00
Daniel c4753aaf65 Implemented QR algorithm with initial transformation to Hessenberg form and Wilkinson shift for symmetric matrices 2015-09-22 15:17:03 +02:00
Anders Kalør 5e41fbfe2a Add RowSlice and ColSlice test cases for DMat 2015-08-27 16:53:20 +02:00
Tim Kuehn e2c21c4ae2 Fix transpose_mut for square matrices.
And add a test for it.
2015-08-12 16:52:55 -07:00
Daniel 1716dd86db Made tests more readable - missed a function 2015-08-08 17:22:47 +02:00
Daniel 9bb6325846 Made tests more readable 2015-08-08 14:52:57 +02:00
Daniel dc571838bb Added check for symmetricity of input matrix 2015-08-07 15:03:38 +02:00
Daniel b197959e2b Implemented Cholesky decomposition with tests 2015-08-07 14:44:25 +02:00
Arttu Ylä-Outinen 8b14cef4e7 Add a test for multiplication of non-square DMats.
Demonstrates a bug in Mul implementation.
2015-07-12 09:42:31 +03:00
mitchmindtree 51381ff84d Allow for non-consuming std operations on DMat. Added DMat multiplication test. 2015-06-21 00:20:39 +10:00
Sébastien Crozet 410c3c9566 Add pointwise addition and subtraction for `DMat`.
Fix #132.
2015-06-06 12:59:47 +02:00
Sébastien Crozet b859b32804 Add tests for `::angle_between` and `::rotation_between`. 2015-06-01 22:39:33 +02:00
Sébastien Crozet 0988b837dc Update to the last rust-nighly.
Version of rustc: rustc 1.0.0-nightly (123a754cb 2015-03-24).
2015-03-25 22:39:06 +01:00
Pierre Krieger 7c415692c3 Update for rustc 2015-03-23 14:38:48 +01:00
Jameson Ernst 744e9782fc Fix deprecated suffixes in tests 2015-03-01 12:35:11 -08:00
Eduard Bopp 870f9afb34 Fix dependency in arbitrary tests 2015-02-17 13:54:25 +01:00
Eduard Bopp f14f240aa7 Migrate random generation to use crates.io rand
The standard library random generation facilities have been deprecated in
favour of a new crate on crates.io.
2015-02-17 13:45:16 +01:00
Eduard Bopp 7dd698423c Avoid superfluous plugin usage in test 2015-02-17 13:28:40 +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 a2c69e2a25 Fix type errors in tests 2015-01-24 18:26:36 +01: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 ccce2f2a3f Fix tests and benches. 2015-01-09 22:58:17 +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 e6e099b7c4 Replace int, and uint, by isize and usize. 2015-01-09 22:26:05 +01:00
arturo fc1fd16e20 fixes compiling on alpha 1.0 2015-01-09 21:55:15 +01:00
Ben Foppa bd7b4f287f rustup 2015-01-07 15:14:40 -05:00
Mike Dilger 64130dfb2f tests for ApproxEq ULPs 2015-01-01 10:41:15 +13: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
Sébastien Crozet 3317e057f5 Add float constants to `BaseFloat`.
Fix #42.
2014-11-25 11:19:31 +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 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 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 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 27be1f0651 Add a `SquareMat` trait for square matrices. 2014-10-30 09:21:20 +01:00
Robin Gloster 4e4eb62ffc upgrade to newer rust 2014-10-22 13:35:17 +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 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 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