Commit Graph

902 Commits

Author SHA1 Message Date
daingun
1103d49b80 Correct Schur decomposition for 2x2 matrices
Due to rounding and possible loss of precision the lower left element of the 2x2 matrix
may be different from zero.
2020-03-02 12:45:35 +01:00
Andreas Longva
a05aa313da Implement From<&Matrix> for MatrixSlice 2020-03-02 12:45:35 +01:00
Nestor Demeure
6f1e924e40 used Storage trait for solve
see issue 667
2020-03-02 12:45:35 +01:00
Nestor Demeure
ffb69d5a6f used Storage trait for solve method
as per issue 667 https://github.com/rustsim/nalgebra/issues/667
2020-03-02 12:45:35 +01:00
Nestor Demeure
456a5a84e7 Used Storage trait for solve method
See issue 667 : https://github.com/rustsim/nalgebra/issues/667
2020-03-02 12:45:35 +01:00
sebcrozet
0cc1bac816 Bump dependencies. 2019-10-28 14:15:03 +01:00
Edoardo Morandi
d0d1172d4b Rand 0.6 -> 0.7
* Bumped rand version to 0.7
 * Added dependency to rand_distr
 * Bumped quickcheck version to 0.9 (because of rand)
 * Bumped rand_xorshift version to 0.2
2019-10-28 14:15:03 +01:00
thibault
67f3379b34 Corrected typo. 2019-10-28 14:15:03 +01:00
thibault
7773f13016 Changed name. Changed argument. Added documentation line. 2019-10-28 14:15:03 +01:00
thibault
dacd15e927 Added function to compute the mean quaternion from a vector of unit quaternions. 2019-10-28 14:15:03 +01:00
Pierre Avital
b5f43c6efc Switched fmt implementation to a macro, applied that macro to all formats in std 2019-10-28 14:15:03 +01:00
Pierre Avital
6ee0e02612 implemented LowerExp 2019-10-28 14:15:03 +01:00
sebcrozet
be41cb96e8 GEMM on empty matrices: properly take the beta parameter into account. 2019-10-28 14:15:03 +01:00
sebcrozet
8e759ade83 Fix multiplication between matrices of dimension 0.
Fix #644
2019-10-28 14:15:03 +01:00
Koen Deschacht
fba61923ae .min() and .max(): updated examples to be more concise 2019-10-28 14:15:03 +01:00
Koen Deschacht
8f0ee9fa90 Allow getting .min() and .max() of matrices of unsigned integers 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
Fabian Löschner
e170729f67 Simplified ordering check 2019-08-27 22:05:28 +02:00
Fabian Löschner
a06b833343 More elegant initial value for xcmp 2019-08-27 22:05:28 +02:00
Fabian Löschner
c625a37525 Undo breaking changes 2019-08-27 22:05:28 +02:00
Fabian Löschner
a4a5750ccd Clarified documentation of min/max behaviour 2019-08-27 22:05:28 +02:00
Fabian Löschner
d21c65f755 Fix for [a,ca]min/max methods.
Panic on empty matrices, propagate NaN, fix of wrong results, added doc tests
2019-08-27 22:05:28 +02:00
Jake Shadle
4fa4a6b854 HTTPS All The Things (#608)
* Use https for all links where it is valid

* Fix random links to external sites
2019-08-27 22:05:28 +02:00
Las
3d97b21aea Fix incorrect documentation from s/Real/&Field 2019-08-27 22:05:28 +02:00
Jack Wrenn
c8ae3839c1 simplify anti-aliasing assertion 2019-08-27 22:05:28 +02:00
Jack Wrenn
2e273ad6c5 prevent constructing MatrixSliceMutMN for which disjoint indices may alias the same linear index
Fixes #486.
2019-08-27 22:05:28 +02:00
Stefan Mesken
e86ab5db3d removed depedency on Vec 2019-08-27 22:05:28 +02:00
Stefan Mesken
4add995c1b addressed Trevis CI error 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
Sébastien Crozet
b5f452087e Release v0.18.0 2019-03-31 17:32:40 +02:00
sebcrozet
bb06701eff Fix the return type of convolve_same to match the documentation. 2019-03-31 17:04:20 +02:00
sebcrozet
ae4afa3d2c Merge branch 'master-public' into dev
# Conflicts:
#	Cargo.toml
#	src/base/matrix.rs
#	src/geometry/quaternion.rs
2019-03-31 16:33:25 +02:00
sebcrozet
b5b81a0ba9 Bump version numbers. 2019-03-31 15:25:54 +02:00
sebcrozet
94a8babcdc Uncomment the fast renormalization of Rotation2. 2019-03-31 14:34:07 +02:00
sebcrozet
18b9f82042 Fix warnings. 2019-03-31 13:32:26 +02:00
sebcrozet
7dbff7c389 Continue reexporting the deprecated alga::general::Real trait. 2019-03-31 12:26:20 +02:00
sebcrozet
55873cae37 Fix compilation with no-std. 2019-03-31 12:06:26 +02:00
sebcrozet
ba40e8eb55 Fix merge errors due to the switch to rust 2018. 2019-03-31 10:53:31 +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
Adam Nemecek
1e04053a21 refactoring 2019-03-31 10:34:03 +02:00
Adam Nemecek
e416360fc9 geometric operations 2019-03-31 10:34:03 +02:00
Simon Puchert
74aefd9c23 Improve precision of UnitQuaternion::angle (#569)
The previous implementation had stability problems for small angles due
to the behaviour of the arccosine it used. In particular, it needs a
hack to handle "cosines" greater than 1 and the smallest obtainable
nonzero angle for e.g. f32 is acos(1-2^-22) = 0.00069...
These problems can be fixed by using an arctangent-based formula.
2019-03-31 10:32:34 +02:00
sebcrozet
56f961c4bc Reexport Complex from num_complex. 2019-03-26 18:02:14 +01:00
sebcrozet
3b6cd04a80 Adapt BLAS tests to complex numbers. 2019-03-26 18:02:03 +01: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
Samuel Hurel
b4d800f3e2 Fix matrix slerp function (#568)
* Fix matrix slerp function

* Adding slerp doc test
2019-03-24 21:44:49 +01:00
sebcrozet
3cbe60523a 2018 edition. 2019-03-23 14:33:47 +01:00
sebcrozet
ce24ea972e Remove all spurious allocation introduced by complex number support on decompositions. 2019-03-23 14:13:00 +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
fd65738738 Fix icamax_full doc-test. 2019-03-19 22:56:32 +01:00
sebcrozet
cb367a645d Fix mint tests. 2019-03-19 22:53:21 +01:00
sebcrozet
b0a9eab0b9 Final SVD fix. 2019-03-19 22:52:57 +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
adamnemecek
1e614db227 Quaternionic division + refactoring (#563) 2019-03-18 09:08:42 +01:00
Sébastien Crozet
f916dae6ed
Merge pull request #537 from greizgh/fix-axpy-typo
Fix typo in axpy documentation
2019-03-16 10:06:35 +01:00
Sébastien Crozet
fac012a775
Merge pull request #558 from tpdickso/geometric-transform-point
Add the `transform` methods as inherent methods on geometric types
2019-03-16 10:06:00 +01:00
Greizgh
0f09f2a58c Fix typo in axpy documentation 2019-03-15 15:59:39 +01:00
Sébastien Crozet
a2c0a453d3
Add operator explanation to docs
Co-Authored-By: tpdickso <tpdickso@uwaterloo.ca>
2019-03-15 10:50:47 -04:00
sebcrozet
010c009cff Fix Schur decomposition. 2019-03-12 13:15:02 +01:00
est31
db3d08f81a Fix two compiler warnings
Fixes #561
2019-03-12 09:00:23 +01:00
Sébastien Crozet
b46cf75996
Merge pull request #560 from adamnemecek/master
quaternion trigonometry
2019-03-04 21:18:24 +01:00
Adam Nemecek
edb08cd900 quaternion trigonometry 2019-03-04 08:36:46 -08:00
Sébastien Crozet
2f4983d778
Merge pull request #539 from npapapietro/Implement_convolution_#520
Implement convolution #520
2019-03-02 22:47:21 +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
Benjamin Hetherington
aeff67ecbd Correct typo in quaternion documentation (#559)
Correct "looses" to "loses" in quaternion.rs documentation.
2019-02-25 17:34:13 +01:00
Nathan
28525bfc20 Restructured usage of convolves, added unit testing. 2019-02-24 19:53:09 -06:00
Terence
2a2e9d7f8e Add the transform methods as inherent methods on geometric types
This adds `transform_point`, `transform_vector`,
`inverse_transform_point` and `inverse_transform_vector` as inherent
methods on the applicable geometric transformation structures, such
that they can be used without the need to import the `Transformation`
and `ProjectiveTransformation` traits from `alga`.
2019-02-24 11:29:27 -05:00
adamnemecek
704331be4f added Quaternion accessors for r,i,j,k, refactored conjugate to use imag (#551) 2019-02-23 16:03:01 +01:00
Nathan
a3d571ea6b Merge remote-tracking branch 'upstream/master' into Implement_convolution_#520 2019-02-23 08:29:41 -06:00
Jack Wrenn
20e9c6f480 Implement iter::Sum for DMatrix (#552)
Fixes #514.
2019-02-23 15:02:27 +01:00
sebcrozet
7c91f2eeb5 Use Complex instead of Real whenever possible on the base/ module. 2019-02-23 11:24:07 +01:00
Nathan
2a2debf58b Fixing documentation 2019-02-20 20:32:09 -06:00
Nathan
9f52019385 Fixing type traits based on feedback, convolve_full still broken 2019-02-18 19:01:18 -06:00
Sébastien Crozet
c97dfaf381
Add renormalization and rotation extraction from general 2D and 3D matrices. (#549)
* Add From impls to convert between UnitQuaterion/UnitComplex and Rotation2/3

* Add rotation extraction from a Matrix2 or Matrix3.

* Add fast Taylor renormalization for Unit.

Fix 376.

* Add renormalization for Rotation3.

Renormalization for Rotation2 requires Complex to implement VectorSpace which will be fixed only on alga v0.9

* Update Changelog.
2019-02-18 22:41:46 +01:00
adamnemecek
975d72f070 Replace explicit types with Self where possible. 2019-02-16 22:29:41 +01:00
Nathan
b08c2ad70d Feedback updates round 1 2019-02-14 20:54:26 -06:00
Nathan
bca385ea6b Quick fix to documentation 2019-02-10 13:46:37 -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
fac709b0c0 Release nalgebra v0.17 and nalgebra-glm v0.3. 2019-02-03 17:03:12 +01:00
Sébastien Crozet
cc7bab9755
Merge branch 'master' into as_ptr 2019-02-03 16:55:54 +01:00
sebcrozet
08f31837a8 Update to alga 0.8. 2019-02-03 15:52:15 +01:00
sebcrozet
7be7fc8776 Fix compilation with no-std. 2019-02-03 15:16:50 +01:00
sebcrozet
ce8879c37a Add all the missing docs. 2019-02-03 14:18:55 +01: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
f52bd4be3d Rename VecStorage::data/data_mut to ::as_vec/as_vec_mut 2019-02-03 11:48:42 +01:00
sebcrozet
664658760a Remove the Deref implementation for MatrixRef.
Fix #380.
2019-02-03 11:41:14 +01:00
sebcrozet
e225297147 Add doc-tests for apply_norm and apply_metric_distance. 2019-02-03 11:29:10 +01:00
sebcrozet
48e9bbc065 Add tests for row and column iterators. 2019-02-03 11:17:23 +01:00
sebcrozet
bafd74da70 Fix doc-tests for variance. 2019-02-03 11:06:06 +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
414fe8afda Pass references to zip_apply and zip_zip_apply. 2019-02-03 08:08:03 +01:00
sebcrozet
da8dc6c4bd Use IntoIterator for select_rows and select_columns argument. 2019-02-03 08:08:03 +01:00
sebcrozet
d1391592a0 Add zip_apply and zip_zip_apply. 2019-02-03 08:08:03 +01:00
sebcrozet
904000ce27 Add argmin and argmax. 2019-02-03 08:08:03 +01:00