Commit Graph

233 Commits

Author SHA1 Message Date
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 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 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 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
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 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
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 82106caa9e Merge branch 'dev' into master-public
# Conflicts:
#	src/linalg/svd.rs
2018-12-29 14:39:32 +01:00
Jack Wrenn 57123ed6aa Overloaded Indexing 2018-12-29 13:41:56 +01:00
Jack Wrenn 0ab137bfcf Rename `Unit::unwrap` to `Unit::into_inner` and deprecate `Unit::unwrap`
See #460
2018-12-16 12:58:20 +01:00
sebcrozet 14ad10a7e0 Add rustfmt.toml and run it. 2018-10-27 15:00:18 +02:00
João Costa 7a95644a21 Simplify SVD recompose pattern match 2018-10-13 10:55:37 +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
Bruce Mitchener 175c41ed3a Typo fixes. 2018-09-24 21:15:07 +02:00
sebcrozet b272f3ba76 Fix compilation errors when the serde-serialize feature is enabled.
Fix #369.
2018-09-13 07:49:38 +02:00
sebcrozet cdfa73eba6 Fix warnings. 2018-05-26 22:07:57 +02:00
sebcrozet 40e74e0186 Fix compilation with and without #![no_std]. 2018-05-26 22:07:57 +02:00
sebcrozet ca093fad29 Move core/* to base/* + add conditional compilation to dynamics matrices when no_std is enabled. 2018-05-26 22:07:57 +02:00
Sébastien Crozet 662cc9cd7f Run rust fmt. 2018-02-03 13:59:05 +01:00
Colin Wallace e5259130e5 Fix spelling of "below" 2017-10-26 21:13:35 -07:00
Sébastien Crozet 740d19437c Fix unused_result lint errors. 2017-08-15 19:07:18 +02:00
Sébastien Crozet 3e349b80cf Implement serde traits for all linalg structs. 2017-08-15 19:07:18 +02:00
Sébastien Crozet 70bb2cbe46 Implement Clone, Debug, Copy for all linalg structures. 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 053de0576f nalgebra-lapack: unify API of LU.solve and Cholesky.solve with nalgebra. 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 a7bce9cf3f symmetric_eigen: allow computing only eigenvalues. 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
Sébastien Crozet 99b6181b1e Complete library rewrite.
See comments on #207 for details.
2016-12-04 22:47:36 +01:00
Sébastien Crozet d45c242a15 Add a `Unit` wrapper type, remove UnitQuaternion.
The `Unit` wrapper type ensures that elements of the underlying type has a unit norm.
For example, `Unit<Vector3>` designates an element of S².
In particular `UnitQuaternion<N>` is now a type alias for `Unit<Quaternion<N>>`.
2016-08-16 10:27:07 +02:00
Sébastien Crozet 88a74ca4e5 Macro groupping. 2016-08-11 23:28:08 +02:00
Sébastien Crozet 7b4a57c224 Fix some clippy warning.
The following lints were disabled:

* wrong_self_convention
* needless_range_loop
* reverse_range_loop
* len_without_is_empty
* explicit_iter_loop
* many_single_char_names
* similar_names
* too_many_arguments
* float_cmp
* new_without_default
2016-08-11 23:08:21 +02:00
Sébastien Crozet df872f407d Replace "col" by "column".
Related to #176.
2016-04-18 08:32:12 +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
Daniel D 179a6560ce Fix eigenvalue calculation for diagonal matrices 2015-11-14 15:40:35 +01:00
Sébastien Crozet 37f1a1d26c Style fixes. 2015-10-13 22:53:19 +02: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
Sébastien Crozet ca3c4e73c5 Fix warnings generated by the last rust-nightly. 2015-08-20 21:41:40 +02:00
Sébastien Crozet 2091cd8da6 Minor codding style fixes. 2015-08-09 14:39:45 +02:00
Daniel 89bbe0f4b4 Removed unused code 2015-08-08 17:52:16 +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
Eduard Bopp bd593a923c Fix a number of warnings
Mostly related to the `us` → `usize` suffix renaming. It turns out that none of
the suffixes are required any more, as the type inference appears to have
improved in that regard. There were also parantheses around range terms that
are not required any more.

Finally the `[]` syntax has been deprecated and thereby removed.
2015-02-21 15:07:50 +01:00
Eduard Bopp 3107dd607b Rename similar in-place and copy methods
Fixes #52.

This renames pairs of methods like `normalize_cpy`, `normalize` to `normalize`
and `normalize_mut`. Note that the previous in-place operations had the same
name that now belongs to the copy operations. Therefore this is a breaking
change.

On a similar note, the `Quat::conjugate` method was also renamed to
`conjugate_mut` and a new copying method has taken its place. This appears to
be a similar issue (apart from the lack of the copy operation) and thus was
dealt with here, too.
2015-02-01 23:23:57 +01:00
Sébastien Crozet 1b6a44e8fb Update to the last rust-nightly.
Version of rustc: 1.0.0-nightly (4874ca36f 2015-01-23 00:18:57 +0000).
2015-01-23 21:48:10 +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
Sébastien Crozet 014aabb856 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (c6c786671 2015-01-04 00:50:59 +0000).
2015-01-04 19:03:28 +01:00
Sébastien Crozet 018d4a2ec0 Remove glob imports. 2015-01-04 09:39:32 +01:00
Connorcpu a18a53b82e Updated to latest rust master 2015-01-03 13:48:10 -08: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 77348f668f Use our own traits instead of the deprecated ones.
We might switch to bjz/num-rs eventually (#32), but in the mean time we just re-declare the
deprecrated traits in nalgebra.
2014-11-16 14:42:18 +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 171576e2a0 Move the `eigen_qr` function behind the `EigenQR` trait.
This simplifies generic programming.
2014-10-30 09:21:20 +01:00
Sébastien Crozet 27be1f0651 Add a `SquareMat` trait for square matrices. 2014-10-30 09:21:20 +01:00
Sébastien Crozet 628aac0961 Coding style fix. 2014-10-30 09:21:18 +01:00
Sébastien Crozet ff95e2a9d8 Remove the shifting from the qr algorithm. 2014-08-17 22:42:16 +02:00
Sébastien Crozet 314f0c0043 Add `na::eigen_qr` that performs an eigendecomposition using the qr algorithm. 2014-08-16 15:34:34 +02:00
Sébastien Crozet 40c9915870 Add the types: DVec1, .., DVec6.
They are stack-allocated, dynamically sized vectors with a maximum size.
This is useful for slicing small matrices, without allocation.
2014-08-16 12:16:26 +02:00
Sébastien Crozet e3d1bf6f92 Update to the last rust-nightly.
Version of rustc: 0.11.0-nightly (5ad7286dc37839b7234ff51aab172e48935869d8 2014-07-12 00:31:46 +0000)
2014-07-12 09:30:49 +02:00
Sébastien Crozet ecbc159521 Update some links to point on `nalgebra.org`. 2014-06-09 21:48:24 +02:00
Vincent Barrielle 73c6610048 new_identity and housholder matrix available under na:: 2014-05-12 21:54:59 +02:00
Vincent Barrielle dcf7b8ad01 generic implementation of QR decomposition
But static matrices can't use it yet, they need to implement the
Row/Col slicing traits.
2014-05-11 21:20:41 +02:00
Vincent Barrielle 6ad11edf9b more generic QR: generalize the impl of the Indexable trait
This allows the implementation of householder reflection without relying
on knowledge of DVec. This required a new member in the Indexable trait:
the shape() function, which returns the maximum index available.
2014-05-11 20:05:08 +02:00
Vincent Barrielle a213a3da93 fixing style issues 2014-05-10 12:48:25 +02:00
Vincent Barrielle d1a58f960c Moving row/col slicing traits to a better place 2014-05-09 23:05:23 +02:00
Vincent Barrielle 5611307b4d QR decomposition depends less on DMat internals 2014-05-09 22:14:37 +02:00