Commit Graph

204 Commits

Author SHA1 Message Date
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
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
Austin Lund f9921a6774 Refactor row_sum() and column_sum() to cover more cases.
Currently the methods for row_sum and column_sum require Field and
Supersetof<f64>.  This means that to perform a row_sum or
column_sum requires the scalar type to have more properties than just
addition.  Consequently, row_sum() won't work on integer matricies.

This patch makes the only requirement that the scalar type be an
additive monoid. Doc tests using integers are also added.
2019-06-20 09:18:42 +10:00
Jake Shadle 0384268bd4 HTTPS All The Things (#608)
* Use https for all links where it is valid

* Fix random links to external sites
2019-06-11 20:56:50 +02:00
Christian Authmann 589aebbf85 Add #[must_use] to all functions with a _mut variant (#598) 2019-06-05 23:04:04 +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
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 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 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 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
adamnemecek 1e614db227 Quaternionic division + refactoring (#563) 2019-03-18 09:08:42 +01:00
Greizgh 0f09f2a58c Fix typo in axpy documentation 2019-03-15 15:59:39 +01: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
sebcrozet 77f048b6b9 WIP use Complex instead of Real whenever possible on the linalg module. 2019-03-02 19:33:49 +01: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
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
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 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 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 c9351cb818 Fix merge fallout. 2018-12-29 14:57:26 +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
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 cae2be5cad Add .min and .max. 2018-12-22 18:03:32 +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 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
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
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
Jack Wrenn 9e763bbcff doc tests for `from_vec_generic` and `from_vec` 2018-11-08 06:42:55 +01:00
Jack Wrenn d6fb07dad2 Introduce `from_vec`, to complement `from_vec_generic` 2018-11-08 06:42:55 +01:00
Jack Wrenn 68bdb427cf Rename: `from_vec` -> `from_vec_generic` 2018-11-08 06:42:55 +01:00
Jack Wrenn ff4e44a8ed Introduces a `from_vec` constructor for `MatrixMN`.
Addresses #378.

The implementation of `from_vec` simply wraps a call to
`from_iterator_generic`. Because the standard library's implementation
of `into_iter` is specialized for the `.into_iter().collect<Vec<_>>()`
case (see https://github.com/rust-lang/rust/issues/46084#issuecomment-345524508),
this is equivalent to re-using the original Vec as storage.
2018-11-08 06:42:55 +01:00