Commit Graph

272 Commits

Author SHA1 Message Date
Sébastien Crozet
b78dcb3155 Add methods to set a row or a column of the matrix. 2017-05-17 22:47:45 +02:00
Benjamin Saunders
0979896dbd Remove gratuitous indirection in serialization impls 2017-05-03 19:51:26 -07:00
Sébastien Crozet
35d2b6dc88 Add kronecker product.
Closes #248
2017-05-03 22:47:18 +02:00
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