Commit Graph

929 Commits

Author SHA1 Message Date
Las 65e4c59152 Fix incorrect documentation from `s/Real/&Field` 2019-04-17 19:30:45 +02:00
Jack Wrenn 05eb9ac2ba simplify anti-aliasing assertion 2019-04-16 09:14:46 +02:00
Jack Wrenn 306f096c64 prevent constructing `MatrixSliceMutMN` for which disjoint indices may alias the same linear index
Fixes #486.
2019-04-16 09:14:46 +02:00
Stefan Mesken ff9027f473 removed depedency on Vec 2019-04-08 23:44:49 +02:00
Stefan Mesken cb459d4493 addressed Trevis CI error 2019-04-08 23:44:49 +02:00
Stefan Mesken 5392b936d1 Allow the removal of multiple rows/columns given an array of indices. #530 2019-04-08 23:44:49 +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
sebcrozet 0d2c1be8da Add row and column iterators. 2019-02-03 08:08:03 +01:00
sebcrozet bba1f48e81 Add select_rows and select_columns. 2019-02-03 08:06:24 +01:00
sebcrozet 01d1f9d24b Simplify the construction of DVector.
Fix #377.
2019-02-03 08:06:24 +01:00
sebcrozet 660b868603 Add more general norms and metrics.
Fix #258.
2019-02-03 08:06:24 +01:00
sebcrozet cc2a70664d Add statistics functions: sum, variance, mean. 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
Sébastien Crozet 9167965252
Merge pull request #525 from jswrenn/fix-serde-deserialization-panic
Fix out-of-bounds panic during deserialization; produce error instead
2019-02-03 07:31:03 +01:00
Sébastien Crozet 77a317234c
Merge pull request #533 from ybyygu/master
fix doc strings for `map_with_location` and `lower_triangle`
2019-02-03 07:29:49 +01:00
Wenping Guo b42339ec94 fix doc string of `lower_triangle` method 2019-01-30 15:42:28 +08:00
Wenping Guo bb3f3ac2ee fix doc for `map_with_location` method 2019-01-30 09:33:45 +08:00
sebcrozet 13f76efe36 Add simple constructors for pure-translation and pure-rotation isometries. 2019-01-29 12:04:23 +01:00
sebcrozet a7ab61f974 Add horizontal and vertical resizing for dynamic matrices and vectors. 2019-01-29 12:03:48 +01:00
sebcrozet 9fbdedb942 Implement ContiguousStorage for some matrix slices. 2019-01-29 12:02:05 +01:00
Gedl 59b0709fcf Retain new_observer_frame as a deprecated wrapper function 2019-01-17 10:17:00 +01:00
Gedl 3fdcf5329d Rename ::new_observer_frame to ::face_towards 2019-01-16 22:41:25 +01:00
Jack Wrenn 6426a7cb6f Fix out-of-bounds panic during deserialization; produce error instead.
Fixes #522
2019-01-16 11:23:20 -05:00
shivshank 85a943b7ef Rewrite to_homogenous for vectors to use push 2019-01-09 21:48:03 -05:00
shivshank 3055c289c0 Add `push` method to Vector 2019-01-09 21:38:58 -05:00
sebcrozet 5569850dbd Fix examples on stable. 2018-12-29 15:32:09 +01:00
sebcrozet c9351cb818 Fix merge fallout. 2018-12-29 14:57:26 +01:00
sebcrozet 82106caa9e Merge branch 'dev' into master-public
# Conflicts:
#	src/linalg/svd.rs
2018-12-29 14:39:32 +01:00
Sébastien Crozet 564246ec1c
Merge pull request #507 from burtonageo/update_deps_2
Update dependencies, and fix tests from fallout
2018-12-29 14:33:53 +01:00
sebcrozet be8d1ce3ce Fix compilation errors related to rand. 2018-12-29 14:22:24 +01:00
Jack Wrenn 5a9a1eb645 typofix: indicies -> indices 2018-12-29 13:41:56 +01:00
Jack Wrenn 4ab8a290c7 groundwork for indexing with typenums 2018-12-29 13:41:56 +01:00
Jack Wrenn 939915131d MutMatrixIndex -> MatrixIndexMut 2018-12-29 13:41:56 +01:00
Jack Wrenn 57123ed6aa Overloaded Indexing 2018-12-29 13:41:56 +01:00
Jack Wrenn d3510b8ff6 typofix: `DimNameNimimum` -> `DimNameMinimum` 2018-12-29 13:41:23 +01:00
sebcrozet f36ff97d6a Fix deprecation warnings. 2018-12-29 13:19:09 +01:00
Jack Wrenn 53632cd1b4 Implement `Hash` for all `Matrix<N, R, C>` where `N: Hash`.
Implements #508.
2018-12-29 11:29:13 +01:00
sebcrozet a14d8a4cb2 Add coordinates access to translations.
Fix #509.
2018-12-26 15:19:50 +01:00
sebcrozet cae2be5cad Add .min and .max. 2018-12-22 18:03:32 +01:00
George Burton 6a4323d0ea Fix unintentional change 2018-12-18 14:46:29 +00:00
George Burton 9c37c51203 Update dependencies, and fix tests from fallout 2018-12-18 14:44:53 +00:00
Jack Wrenn 8b8f127f8d Deprecate `origin`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn daadac7647 Deprecate `try_normalize`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn 8a5e062e7e Deprecate `normalize`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn e89faca588 Deprecate `magnitude_squared`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn 770489c664 Deprecate `magnitude`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn 2bb7c011b1 Deprecate `norm_squared`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn e55c72fddc Deprecate `norm`.
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn 03f7c2d286 Deprecate `angle`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn 52b8155c67 Deprecate `dot`
See #371.
2018-12-16 12:58:51 +01:00
Jack Wrenn aac29b70ea Deprecate `abs`
See #371
2018-12-16 12:58:51 +01:00
Jack Wrenn 2595db1607 Fix doctests broken by 35d2381a2a 2018-12-16 12:58:20 +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
Jack Wrenn 43c5f4cb73 Rename `Transform::unwrap` to `Transform::into_inner` and deprecate `Transform::unwrap`
See #460
2018-12-16 12:58:20 +01:00
Jack Wrenn 35ab64b086 Rename `Rotation::unwrap` to `Rotation::into_inner` and deprecate `Rotation::unwrap`
See #460
2018-12-16 12:58:20 +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
Jack Wrenn 0f66403cbb Rename `MatrixVec` to `VecStorage`.
See #470.
2018-12-06 20:51:29 +01:00
Jack Wrenn b83c3b857b Rename `MatrixArray` to `ArrayStorage`.
See #470.
2018-12-06 20:51:29 +01:00
sebcrozet c69ab193be Fix cornercase for Rotation3 conversion to euler angles.
Fix #494
2018-12-04 22:04:07 +01:00
Jack Wrenn 72d89c75ae Group swizzle methods by dimensional requirement.
This is semantically equivalent, but improves the rendered documentation.
2018-11-24 08:03:54 +01:00
sebcrozet f972d1dd7e Small dimension check fix for swizzling. 2018-11-23 07:01:35 +01:00
Jack Wrenn accdd51faf Implement `Into<Vec<N>>` for `MatrixVec<N, R, C>` 2018-11-23 07:01:15 +01:00
Jack Wrenn 74ff6ae199 Implement `Point` swizzling 2018-11-23 06:34:00 +01:00
Jochen Görtler 85bfae5390 RFC: Add comment in `Rotation::to_homogeneous()` 2018-11-20 17:47:29 +01:00
Sébastien Crozet bc9c74cbb6 RFC: Remove redundant `Dim` trait
Co-Authored-By: grtlr <grtlr@users.noreply.github.com>
2018-11-20 17:47:29 +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
Jim Turner 267d9760bd Add as_ptr and as_mut_ptr methods
This is useful for moving around a matrix/slice in unsafe code and for
converting slices to other types (e.g. `ndarray::ArrayView`).
2018-11-19 16:53:46 -05:00
Jack Wrenn c36416b9c0 Add `ShapeConstraint` for `Extend<Vector<_,_,_>>` implementations. 2018-11-18 06:36:04 +01:00
Jack Wrenn 0ed67d0470 Implement `Extend<Vector<_,_,_>>` for `Matrix`.
Extend a `Matrix` with columns drawn from an iterator of `Vector`s.
2018-11-18 06:36:04 +01:00
Jack Wrenn 0f29a3ae0a Simplify documentation examples for `Extend` implementations. 2018-11-18 06:36:04 +01:00
Jack Wrenn f711c107ca Implements `Extend` for `Matrix<N, Dynamic, U1>`.
Extends a `Vector` with new rows populated from an iterator.

Inspired by https://github.com/rustsim/nalgebra/issues/446#issuecomment-437931790
2018-11-18 06:36:04 +01:00
Jack Wrenn c3dd709c0a Implements `Extend` for `Matrix<N, Dim, Dynamic>`.
Extends a matrix with new columns populated from an iterator.
2018-11-18 06:36:04 +01:00
sebcrozet bd7d0be7a8 Remove over-restrictive assertions on Orthographic3 construction + add doc-tests.
Fix #365
2018-11-10 12:57:47 +01:00
sebcrozet 69490c2cea Add doc-tests to Transform. 2018-11-10 11:20:34 +01:00
sebcrozet b6d741c593 Document similarity_construction.rs. 2018-11-10 11:20:34 +01:00
sebcrozet a8a9a3082a Add doc-tests to unit_complex_construction. 2018-11-10 11:20:34 +01:00
sebcrozet ff5b64e35d Add doc-tests to unit_complex.rs. 2018-11-10 11:20:34 +01:00
sebcrozet 536923f9fc Add doc-tests to rotation_specialization. 2018-11-10 11:20:34 +01:00