Commit Graph

279 Commits

Author SHA1 Message Date
Nestor Demeure
5942a2a125 got test to compile 2020-03-02 12:45:36 +01:00
Nestor Demeure
cc478c6c6d added test for update 2020-03-02 12:45:36 +01:00
Andreas Longva
2f77d73226 Generalize From<_> for MatrixSlice(Mut) to allow different strides 2020-03-02 12:45:35 +01:00
Andreas Longva
a05aa313da Implement From<&Matrix> for MatrixSlice 2020-03-02 12:45:35 +01:00
sebcrozet
be41cb96e8 GEMM on empty matrices: properly take the beta parameter into account. 2019-10-28 14:15:03 +01:00
sebcrozet
f9f7ddd08f Add test for empty matrix tr_mul. 2019-10-28 14:15:03 +01:00
sebcrozet
e30db9e8b1 Add test for empty matrix multiplication. 2019-10-28 14:15:03 +01:00
sebcrozet
cfb654240c Matrix::transform_point: correctly take the normalization term into account.
Fix #640
2019-08-27 22:05:28 +02:00
Stefan Mesken
3baefb1319 Allow the removal of multiple rows/columns given an array of indices. #530 2019-08-27 22:05:28 +02:00
sebcrozet
dda41c1508 Add tests for serialization of 2D transformations.
Fix #320.
2019-08-27 22:05:28 +02:00
sebcrozet
bb06701eff Fix the return type of convolve_same to match the documentation. 2019-03-31 17:04:20 +02:00
sebcrozet
18b9f82042 Fix warnings. 2019-03-31 13:32:26 +02:00
sebcrozet
38ef0cbf7b Merge branch 'dev' into complex
# Conflicts:
#	src/base/ops.rs
#	src/geometry/isometry.rs
#	src/geometry/quaternion.rs
#	src/geometry/quaternion_construction.rs
#	src/geometry/rotation.rs
#	src/geometry/similarity.rs
#	src/geometry/transform.rs
#	src/geometry/translation.rs
#	src/geometry/unit_complex.rs
2019-03-31 10:48:59 +02:00
sebcrozet
f9995f1fcc Fix tests. 2019-03-31 09:12:54 +02:00
sebcrozet
4ef4001836 Rename Real to RealField. 2019-03-25 11:21:41 +01:00
sebcrozet
5b28c39fa7 Rename Complex to ComplexField. 2019-03-25 11:19:36 +01:00
sebcrozet
3cbe60523a 2018 edition. 2019-03-23 14:33:47 +01:00
sebcrozet
921a05d523 Implement some BLAS opertaions involving adjoint. 2019-03-23 11:48:12 +01:00
sebcrozet
1001e8ee0f Cleanup warnings and rename Schur -> RealSchur 2019-03-23 11:46:56 +01:00
sebcrozet
cb367a645d Fix mint tests. 2019-03-19 22:53:21 +01:00
sebcrozet
3edef2f006 Decomposition results: return a real vector whenever applicable.
This includes singular values, eigenvalues of hermitian matrices, tridiagonalization and bidiagonalization diagonal and off-diagonal elements.
2019-03-19 14:22:59 +01:00
sebcrozet
2f0d95bdbb Fix most tests. 2019-03-19 12:00:10 +01:00
sebcrozet
e4748c69ce Start fixing SVD. 2019-03-18 11:23:19 +01:00
sebcrozet
010c009cff Fix Schur decomposition. 2019-03-12 13:15:02 +01:00
Nathan
36feddb8c2 Moving functions into impl for Vector<N,D,S> 2019-03-02 15:00:40 -06:00
sebcrozet
77f048b6b9 WIP use Complex instead of Real whenever possible on the linalg module. 2019-03-02 19:33:49 +01:00
Nathan
28525bfc20 Restructured usage of convolves, added unit testing. 2019-02-24 19:53:09 -06:00
Nathan
a3d571ea6b Merge remote-tracking branch 'upstream/master' into Implement_convolution_#520 2019-02-23 08:29:41 -06:00
Nathan
9f52019385 Fixing type traits based on feedback, convolve_full still broken 2019-02-18 19:01:18 -06:00
Nathan
b3c6492530 Moved test file to lingal folder, wrote tests based on github ticket request (scipy reference) 2019-02-10 13:40:32 -06:00
sebcrozet
fc24db8ff3 Merge branch 'master-public' into sparse
# Conflicts:
#	Cargo.toml
#	examples/matrix_construction.rs
#	nalgebra-glm/src/constructors.rs
#	nalgebra-glm/src/ext/matrix_clip_space.rs
#	nalgebra-glm/src/ext/matrix_transform.rs
#	nalgebra-glm/src/ext/mod.rs
#	nalgebra-glm/src/ext/quaternion_common.rs
#	nalgebra-glm/src/gtx/quaternion.rs
#	nalgebra-glm/src/gtx/rotate_vector.rs
#	nalgebra-glm/src/lib.rs
#	nalgebra-glm/src/traits.rs
#	nalgebra-lapack/src/cholesky.rs
#	nalgebra-lapack/src/eigen.rs
#	nalgebra-lapack/src/hessenberg.rs
#	nalgebra-lapack/src/lu.rs
#	nalgebra-lapack/src/qr.rs
#	nalgebra-lapack/src/schur.rs
#	nalgebra-lapack/src/svd.rs
#	nalgebra-lapack/src/symmetric_eigen.rs
#	rustfmt.toml
#	src/base/array_storage.rs
#	src/base/blas.rs
#	src/base/cg.rs
#	src/base/default_allocator.rs
#	src/base/edition.rs
#	src/base/iter.rs
#	src/base/matrix.rs
#	src/base/swizzle.rs
#	src/base/vec_storage.rs
#	src/geometry/mod.rs
#	src/geometry/point_construction.rs
#	src/geometry/quaternion.rs
#	src/geometry/similarity.rs
#	src/geometry/translation.rs
#	src/geometry/unit_complex_construction.rs
#	src/linalg/bidiagonal.rs
#	src/linalg/cholesky.rs
#	src/linalg/full_piv_lu.rs
#	src/linalg/hessenberg.rs
#	src/linalg/lu.rs
#	src/linalg/permutation_sequence.rs
#	src/linalg/qr.rs
#	src/linalg/schur.rs
#	src/linalg/svd.rs
#	src/linalg/symmetric_eigen.rs
#	src/linalg/symmetric_tridiagonal.rs
#	tests/geometry/point.rs
#	tests/geometry/quaternion.rs
#	tests/lib.rs
#	tests/linalg/eigen.rs
#	tests/linalg/svd.rs
2019-02-03 12:53:41 +01:00
sebcrozet
381fdb642c Remove useless extern crate in doc-tests. 2019-02-03 11:01:11 +01:00
sebcrozet
dcae274d2e Fix rebase fallback + add missing docs. 2019-02-03 08:33:07 +01:00
sebcrozet
01d1f9d24b Simplify the construction of DVector.
Fix #377.
2019-02-03 08:06:24 +01:00
Sébastien Crozet
570611a59b
Merge pull request #524 from shivshank/master
Add `push` method to Vector
2019-02-03 07:52:03 +01:00
Gedl
3fdcf5329d Rename ::new_observer_frame to ::face_towards 2019-01-16 22:41:25 +01:00
shivshank
3055c289c0 Add push method to Vector 2019-01-09 21:38:58 -05:00
sebcrozet
82106caa9e Merge branch 'dev' into master-public
# Conflicts:
#	src/linalg/svd.rs
2018-12-29 14:39:32 +01:00
sebcrozet
f36ff97d6a Fix deprecation warnings. 2018-12-29 13:19:09 +01:00
Jack Wrenn
0d47a8e16b Rename Perspective3::unwrap to Perspective3::into_inner and deprecate Perspective3::unwrap
See #460
2018-12-16 12:58:20 +01:00
Jack Wrenn
9600c45dd4 Rename Orthographic3::unwrap to Orthographic3::into_inner and deprecate Orthographic3::unwrap
See #460
2018-12-16 12:58:20 +01:00
sebcrozet
c69ab193be Fix cornercase for Rotation3 conversion to euler angles.
Fix #494
2018-12-04 22:04:07 +01:00
Jochen Görtler
72f61918f4 RFC: Fix type annotations 2018-11-20 17:47:29 +01:00
Jochen Görtler
3ac5efeac1 WIP: to_homogeneous for MatrixN 2018-11-20 17:47:29 +01:00
sebcrozet
8341ec2f10 Run rustfmt. 2018-11-06 18:32:20 +01:00
sebcrozet
ed07b78b97 Add matrixmarket parser. 2018-11-06 18:31:04 +01:00
sebcrozet
538e18b3e9 Ensure the output of addition is sorted. 2018-11-05 16:44:59 +01:00
sebcrozet
748cfeea66 Ensure the output of multiplication and triangular solve are sorted. 2018-11-05 16:38:43 +01:00
sebcrozet
c3e8112d5e Add implementation of the left-looking cholesky decomposition. 2018-11-04 07:10:43 +01:00
sebcrozet
98b0b842e9 Remove the inherent clone method from points.
Fix #458.
2018-11-01 10:22:10 +01:00
sebcrozet
9bf1d0280d Fix cholesky computation. 2018-10-30 17:29:32 +01:00
sebcrozet
92d9f82caf Fix syntax error. 2018-10-27 15:00:18 +02:00
sebcrozet
14ad10a7e0 Add rustfmt.toml and run it. 2018-10-27 15:00:18 +02:00
sebcrozet
34b20dc291 Add lower triangular solve with sparse right-hand-side. 2018-10-23 18:18:05 +02:00
sebcrozet
9fa3e7a769 Implement CsMatrix: axpy_cs, transpose, Add and Mul. 2018-10-20 22:42:16 +02:00
sebcrozet
0d24cf4dc0 Run rustmt. 2018-10-20 22:26:44 +02:00
sebcrozet
54747817b2 Remove node on test. 2018-10-13 12:59:36 +02:00
sebcrozet
a390732b97 Fix partial_cmp 2018-10-13 12:59:36 +02:00
sebcrozet
18e9b8998d Add impls of From/Into to convert any transformation types to a matrix. 2018-10-13 11:25:19 +02:00
João Costa
8b1aa2078c Change the SVD methods to return a Result instead of panicking 2018-10-13 10:55:37 +02:00
mborst
12962c3c13 Implement map_with_location. 2018-09-28 05:22:32 +02:00
sebcrozet
51a4e73386 Use typenum type-level integer for swizzle dimension comparison.
Fix #408.
2018-09-24 22:04:05 +02:00
sebcrozet
c6bc62c95f For matrices, return the actual result of partial_clamp instead of None.
Fix #401
2018-09-24 20:58:09 +02:00
sebcrozet
f6cbc82152 Add tests attempting to copy from a slice that is too small or too large. 2018-09-13 08:37:20 +02:00
sebcrozet
99b54465c7 Add a copy_from_slice method.
Fix #381.
2018-09-13 08:37:20 +02:00
sebcrozet
1706f9c15f Fix compilation of test when arbitrary is enabled but not debug. 2018-09-13 08:36:37 +02:00
sebcrozet
a5ae1052e6 Fix tests with the 'mint' feature. 2018-05-26 22:07:57 +02:00
sebcrozet
05e053a310 Fix tests. 2018-05-26 22:07:57 +02:00
sebcrozet
d89e3dbac6 Rename the matrix slice constructors from ::new_* to _from_slice_*. 2018-05-06 23:44:57 +02:00
Sébastien Crozet
7004610106 Adapt the debug_output_corresponds_to_data_container test to work on both stable and nightly.
For some reasons the formating of floats seem to have changed.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
487af7d979 Fix matrix resizing with empty matrices.
Fix #306.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
5a4179c287 Re-enable most tests. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
662cc9cd7f Run rust fmt. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
144dfbd555 Add quadform/cmpy/cdpy. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
300b3d0452 Add transpose gemv. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
1ee8a702ea Fix quadratic form computation.
For the moment only the version that does not make any assumption regarding symmetry is
implemented.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
39d20306f1 Add symmetric quadratic form computation. 2018-02-03 13:59:05 +01:00
Sébastien Crozet
94c1ab8e7b Add matrix slice construction from array slices. 2018-02-03 13:59:05 +01:00
Eduard Bopp
098d91cae0 Remove phantom data from matrix debug output
Addresses #295.
2018-01-31 19:24:42 +01:00
Eduard Bopp
bba1993e58 Restructure test modules to avoid warnings
These warnings occurred only when running the test suite with no
features. Lots of uses had to be rescoped into newly created modules to
make it easier to separate these issues.
2018-01-18 13:13:38 +01:00
Eduard Bopp
4a926736fe Split some matrix tests into inline modules
This is primarily to reduce the scope of imports around the quickcheck
part of the tests. It also converts comments into more structured code.
2018-01-18 13:13:38 +01:00
Eduard Bopp
5b2e383320 Let the test suite run with no features 2018-01-18 13:13:38 +01:00
Nil Goyette
27499111ee Add regression test for RowVector3 cross product 2018-01-17 11:13:18 -05:00
Jack Wrenn
922b339fb0 Implement to_euler_angles for Rotation3 and UnitQuaternion
Resolves sebcrozet/nalgebra#243.
2018-01-09 15:15:57 -05:00
Dzmitry Malyshau
94db3f533b Mint rebase 2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
6b6a0717c2 Mint matrices 2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
b0127ab5dc Mint quaternions 2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
2cd79851c3 Mint vector tests 2017-10-09 20:22:24 +02:00
Eduard Bopp
3a1fb0ed88 Fix feature flagging for abomonation-serialize
The tests can now be run without the abomonation feature. Also fixes a
bug in the feature flagging for abomonation.
2017-09-18 20:10:32 +02:00
Sébastien Crozet
48f80d99cc Fix abomonation integration. 2017-08-15 19:36:38 +02:00
Sébastien Crozet
afef66227e Merge branch 'master' into abomonation 2017-08-15 19:18:39 +02:00
Sébastien Crozet
b22eb91a16 Add documentation. 2017-08-15 19:07:18 +02:00
Sébastien Crozet
c258d13f98 Fix stepping for slices.
The previous implementation was wrong compared to what the documentatino claimed.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
41f5231446 Add assign and generalize map to other return types.
The method assign replaces each components with the result of a closure (that takes the
corresponding component as parameter).
2017-08-15 19:07:18 +02:00
Sébastien Crozet
00039c0a76 Add methods for computing decompositions. 2017-08-15 19:07:18 +02:00
Sébastien Crozet
3f70af97dd Add the most common matrix decompositions. 2017-08-15 19:07:18 +02:00
Eduard Bopp
32ac8224ef Test dropping of abomonated data 2017-08-14 21:11:24 +02:00
Eduard Bopp
e09af0ca82 Implement Abomonation for remaining types 2017-08-14 14:32:02 +02:00
Eduard Bopp
916006f80a Refactor abomonation test suite using macro 2017-08-14 12:46:25 +02:00
Eduard Bopp
f67a7bd324 Implement Abomonation for rotations 2017-08-14 12:41:03 +02:00
Eduard Bopp
308177a7d6 Implement Abomonation for translations 2017-08-14 12:37:16 +02:00
Eduard Bopp
7c3a05f668 Implement Abomonation for dynamic matrices 2017-08-14 12:33:14 +02:00
Eduard Bopp
49f12a379d Implement Abomonation for static-size points 2017-08-14 12:18:47 +02:00
Eduard Bopp
65fa4cf740 Implement Abomonation for static matrices 2017-08-14 12:07:06 +02:00
Eduard Bopp
7a62b68c38 Merge pull request #251 from Ralith/unnested-serialization
Remove gratuitous indirection in serialization impls
2017-07-26 19:40:57 +02:00
Sébastien Crozet
f86752e44a De-ambiguat AsRef/AsMut/Into implementations.
Addresses comments of #225.
2017-07-22 09:57:21 +02:00
Brendan Zabarauskas
ba41a8ce5a Implement the sum and product traits for matrices
Closes #264
2017-07-02 01:27:16 +10:00
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