Commit Graph

890 Commits

Author SHA1 Message Date
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
sebcrozet
80fc057ead Add doc-tests to rotation_construction. 2018-11-10 11:20:34 +01:00
sebcrozet
7d9d47d9ea Complete doc-tests of rotation.rs. 2018-11-10 11:20:34 +01:00
sebcrozet
c24caa311f Add some documentation for Rotation. 2018-11-10 11:20:34 +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
sebcrozet
b4b66bddd2 Add comment about cs matrix multiplication implementation. 2018-11-06 19:25:27 +01:00
sebcrozet
f43ab963ad Fix matrix market grammar. 2018-11-06 19:25:16 +01:00
Antony Lesage
c370564dba Fix MatrixMN::from_distribution (#463) 2018-11-06 19:24:20 +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
383a18f083 Improve CsMatrix multiplaction performances. 2018-11-06 18:27:43 +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
a7acd5b832 Fix missing type annotation. 2018-11-01 11:07:36 +01:00
sebcrozet
2119c1adf5 Complete documentation for quaternions. 2018-11-01 11:07:36 +01:00
sebcrozet
911ddca588 Implement From<Vector> for Translation and Quaternion. 2018-11-01 11:07:36 +01:00
sebcrozet
96db8e564a Complete the documentation for Translation. 2018-11-01 11:07:36 +01:00
sebcrozet
1dd6bcce6a Add doc-tests to most of quaternion.rs. 2018-11-01 11:07:36 +01:00
sebcrozet
98b0b842e9 Remove the inherent clone method from points.
Fix #458.
2018-11-01 10:22:10 +01:00
sebcrozet
50d0b64924 Avoid bound-checking on cholesky decomposition. 2018-10-30 17:45:59 +01:00
sebcrozet
9bf1d0280d Fix cholesky computation. 2018-10-30 17:29:32 +01:00
sebcrozet
0ba23da475 Make transform_vector and transform_point public. 2018-10-30 07:55:08 +01:00
sebcrozet
19d2bc0b7c Fix typo. 2018-10-30 07:55:08 +01:00
sebcrozet
fc782f3644 Make MatrixN::{transform_vector, transform_point} inherent methods.
Addresses https://github.com/rustsim/nalgebra/issues/372
2018-10-30 07:55:08 +01:00
sebcrozet
7ecbacacda Add elimination tree computation. 2018-10-30 07:46:34 +01:00
sebcrozet
bfab204a24 Add lerp for vectors.
Fix #453
2018-10-27 16:06:45 +02:00
sebcrozet
4ce6555b96 Add more point and quaternion documentation. 2018-10-27 15:00:18 +02:00
sebcrozet
b32a02f0ac Add doc-tests to point_construction.rs 2018-10-27 15:00:18 +02:00
sebcrozet
551c44c854 Implement From<Vector> for Point. 2018-10-27 15:00:18 +02:00
sebcrozet
6d63a0a5f1 Add doc-tests to isometry_construction.rs 2018-10-27 15:00:18 +02:00
sebcrozet
a512e16868 Add doc-tests to isometry.rs. 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
5ea612ef96 Remove mention to the eye and target on the unit quaternion look_at_* methods. 2018-10-27 15:00:18 +02:00
sebcrozet
f6cd81b028 Add doc-tests for several matrix construction methods. 2018-10-27 15:00:18 +02:00
sebcrozet
15844d877a Add doc-tests for componentwise operations. 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