Commit Graph

293 Commits

Author SHA1 Message Date
S.Brandeis 215df7948e Modify PartialEq test to take into account typenum UInt dimensions 2020-03-02 12:45:38 +01:00
S.Brandeis 35eafa0337 Add unit test for more general PartialEq trait impl. for Matrix type 2020-03-02 12:45:38 +01:00
Sébastien Crozet 5a0ee23e3b Fix Vector::axpy for noncommutative cases (#648)
Fix Vector::axpy for noncommutative cases
2020-03-02 12:45:37 +01:00
Sébastien Crozet ef3406cc8f Cholupdate (#673)
Cholupdate
2020-03-02 12:45:37 +01:00
Jakub Konka e1c8e1bccf Fix Vector::axpy for noncommutative cases
One example would be performing simple matrix multiplication
over a division algebra such as quaternions.
2020-03-02 12:45:37 +01:00
sebcrozet b96159aab3 Fix Cholesky for no-std platforms. 2020-03-02 12:45:36 +01:00
Nestor Demeure 59c6a98615 finished cleaning 2020-03-02 12:45:36 +01:00
Nestor Demeure f54faedc32 tests pass, needs cleanup 2020-03-02 12:45:36 +01:00
Nestor Demeure b29231cf7b found uneeded storagemut 2020-03-02 12:45:36 +01:00
Nestor Demeure cfa7bbdc7c remove column is now working 2020-03-02 12:45:36 +01:00
Nestor Demeure 516155025a code cleaned 2020-03-02 12:45:36 +01:00
Nestor Demeure 7347d467ae rank update passed tests 2020-03-02 12:45:36 +01:00
Nestor Demeure 16154f163a added real constraint on sigma 2020-03-02 12:45:36 +01:00
Nestor Demeure 45e6ac7c2a test is now correct 2020-03-02 12:45:36 +01:00
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