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
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
sebcrozet
e4e5659405
Add lower triangular solve with dense right-hand-side.
2018-10-22 17:55:13 +02:00
sebcrozet
dc8edeceb2
Use an iterator to iterate through a column entries.
2018-10-21 07:42:32 +02:00
sebcrozet
9fa3e7a769
Implement CsMatrix: axpy_cs, transpose, Add and Mul.
2018-10-20 22:42:16 +02:00
sebcrozet
0d24cf4dc0
Run rustmt.
2018-10-20 22:26:44 +02:00
sebcrozet
a3d363f397
Fix minor typos.
2018-10-16 20:57:52 +02:00
sebcrozet
7a9cfef285
Complete doc-tests for blas operations.
2018-10-16 20:57:52 +02:00
sebcrozet
8e3edf102c
Start adding doc-tests for BLAS operations.
2018-10-16 20:57:52 +02:00
Bruce Mitchener
47fe851173
Add favicons to docs.
2018-10-16 18:28:39 +02:00
sebcrozet
9e2541f949
Add a Point::from_slice
2018-10-13 13:13:48 +02:00
sebcrozet
a68937990b
Consider two empty matrices as equal.
2018-10-13 12:59:36 +02:00
sebcrozet
a390732b97
Fix partial_cmp
2018-10-13 12:59:36 +02:00
sebcrozet
18e9b8998d
Add impls of From/Into to convert any transformation types to a matrix.
2018-10-13 11:25:19 +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
3be727e76b
Capitalize 'Euclidean'.
2018-10-09 08:31:38 +02:00
sebcrozet
c7c156a6a0
Use other keywords for isometry documentations.
...
Fix #419 .
2018-10-06 07:27:40 +02:00
Bruce Mitchener
3a24afd111
clippy: Use println!(f), without empty string.
2018-10-05 20:31:29 +02:00
Sébastien Crozet
5059d7ee7b
Add conditional compilation for the base::MatrixVec import too.
2018-10-04 20:37:12 +02:00
Sébastien Crozet
3abeae04f5
Add conditional compilation to From impls for dynamically-sized matrices.
2018-10-04 20:37:12 +02:00
Jack Wrenn
23d646c342
Add an Into
impl for converting MatrixSlice
s into MatrixMN
...
See #342 .
2018-10-04 20:37:12 +02:00
mborst
12962c3c13
Implement map_with_location.
2018-09-28 05:22:32 +02:00
Thomas Vincent
7331807a6d
Fix minor typos
2018-09-27 06:16:04 +02:00
Bruce Mitchener
a8ae62ea52
Improve cross-linking and cross-referencing in docs.
2018-09-27 06:00:32 +02:00
Bruce Mitchener
57fa7099aa
Call base
that instead of based
.
2018-09-27 05:49:18 +02:00
Benjamin Saunders
2f03857017
Introduce Unit::from_ref_unchecked
2018-09-25 05:35:20 +02:00
sebcrozet
f218186ec0
Add Rotation * Unit<Vector>
2018-09-24 22:05:15 +02:00
sebcrozet
51a4e73386
Use typenum type-level integer for swizzle dimension comparison.
...
Fix #408 .
2018-09-24 22:04:05 +02:00
Bruce Mitchener
175c41ed3a
Typo fixes.
2018-09-24 21:15:07 +02:00
sebcrozet
c6bc62c95f
For matrices, return the actual result of partial_clamp instead of None.
...
Fix #401
2018-09-24 20:58:09 +02:00
sebcrozet
f2bad264ef
Re-export conversion functions.
2018-09-23 17:10:49 +02:00
sebcrozet
eea13ffa7d
Add swizzling up to dimension 3 to vectors.
2018-09-23 17:10:49 +02:00
sebcrozet
38c7ed3a11
Add methods to see a Perspective3 or Orthographic3 as a Projective3.
2018-09-22 16:15:11 +02:00
sebcrozet
23bde7dfd0
Reduce requiremens from Real to Ring on the cg module.
2018-09-22 16:15:11 +02:00
sebcrozet
7884f20ea7
Add quaternion dot product.
2018-09-22 16:15:11 +02:00
sebcrozet
832bf42b56
Add slerp for unit vectors.
2018-09-22 16:15:11 +02:00
sebcrozet
a03fd6bff7
Add zip_zip_map to map on three matrices simultaneously.
2018-09-22 16:15:11 +02:00
Jacob Kiesel
787d20cff4
Add magnitude synonym functions for ease of use
2018-09-21 18:28:44 +02:00
sebcrozet
08685122ea
Fix projective * point multiplication.
...
The scaling did not occur at the right time.
2018-09-20 20:59:01 +02:00
sebcrozet
99b54465c7
Add a copy_from_slice method.
...
Fix #381 .
2018-09-13 08:37:20 +02:00
sebcrozet
b272f3ba76
Fix compilation errors when the serde-serialize feature is enabled.
...
Fix #369 .
2018-09-13 07:49:38 +02:00
Cloud Han
7615212e85
Fixed error in comments
...
M-by-N matrices are not square when M != N
2018-09-10 05:57:20 +02:00
sebcrozet
dba752e91e
Implement Send + Sync for SliceStorage{Mut}.
...
Fix #366 .
2018-09-04 07:54:12 +02:00
sebcrozet
24eb7880f3
Release v0.16.0.
2018-07-20 16:35:57 +02:00
sebcrozet
afb6317893
Fix Xargo build.
2018-07-20 16:33:59 +02:00
sebcrozet
378b39db9c
Update impls of abomonation.
2018-07-20 16:33:59 +02:00
sebcrozet
3b19b6553e
Update dependencies.
2018-07-20 16:33:59 +02:00
Benjamin Saunders
aad94661c9
Document distribution uniformity, fix Rotation2
distribution
...
Also tweak UnitComplex distribution for consistency
2018-07-10 20:17:52 +02:00
Sébastien Crozet
8e90e2adf7
Use StandardNormal on rand::distributions.
2018-07-10 20:17:52 +02:00
Sébastien Crozet
a1d8aba501
Use StandardNormal only with the "std" feature.
2018-07-10 20:17:52 +02:00
Benjamin Saunders
352e71656d
Uniformly distributed random rotations, unit vectors
2018-07-10 20:17:52 +02:00
Bernardo Meurer
c9be27abb5
Added imax/imin() as variations of iamax/iamin()
2018-07-10 20:15:21 +02:00
sebcrozet
3eaa65c9cf
Minor doc fixes.
2018-07-07 17:37:15 +02:00
Thomas Forgione
b1616e236c
Changed loops order in from_fn_generic
2018-06-16 14:27:55 +02:00
Simon Heath
ba5bc77262
Removes DefaultAllocatorBound from mint::Point conversions
2018-06-09 00:36:19 +02:00
Simon Heath
491903e1de
Replace mem::transmute() with pointer casts
...
And fix erroneous #[cfg]
2018-06-09 00:36:19 +02:00
Simon Heath
a3c4dbca95
Adds conversions to and from mint Point types.
2018-06-09 00:36:19 +02:00
Hoàng Xuân Phú
4b3a157513
Fix mismatching description for is_empty
2018-05-29 07:55:06 +02:00
sebcrozet
3ee13ec528
Update changelog.
2018-05-27 12:25:58 +02:00
Shane Pearman
2814e09d31
Add from array impl for points.
2018-05-27 12:23:54 +02:00
sebcrozet
c2d597e744
Release v0.15.0.
2018-05-26 22:26:06 +02:00
sebcrozet
cdfa73eba6
Fix warnings.
2018-05-26 22:07:57 +02:00
sebcrozet
0c29a04042
Fix compilation with the 'mint' feature.
2018-05-26 22:07:57 +02:00
sebcrozet
d759db682c
Make the alloc feature actually work.
2018-05-26 22:07:57 +02:00
sebcrozet
a51744f86b
Update to rand 0.5.
2018-05-26 22:07:57 +02:00
sebcrozet
57fa307d4d
Remove deprecated code related to the incoherent_fundamental_impl lint
2018-05-26 22:07:57 +02:00
sebcrozet
6c895ed383
gemm: don't return early for scalar types other than f32,f64.
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
sebcrozet
88055dfc45
Update to approx 0.2.
2018-05-26 22:07:57 +02:00
sebcrozet
8cfd89f287
Add ::from_distribution to build a matrix from a user-provided distribution.
2018-05-17 15:59:51 +02:00
Sébastien Crozet
60fcff9e1d
Re-add the ::new slice constructor, but mark them as deprecated.
2018-05-06 23:44:57 +02:00
sebcrozet
d89e3dbac6
Rename the matrix slice constructors from ::new_*
to _from_slice_*
.
2018-05-06 23:44:57 +02:00
sebcrozet
fefba2ef4e
Fix conflicting impls for isometry multiplication.
2018-05-06 23:44:57 +02:00
Sébastien Crozet
7357d17b77
Fix typos.
2018-05-06 23:31:36 +02:00
Sébastien Crozet
31e3547401
Add UnitQuaternion::{new_eps, from_scaled_axis_eps}.
2018-05-06 23:31:36 +02:00
Sébastien Crozet
1ac8bbd3d1
Add .axis_angle to UnitComplex and UnitQuaternion + .rotation_between_axis to UnitComplex.
2018-03-08 17:30:59 +01:00
Sébastien Crozet
5ce41060e5
Fix typos.
2018-02-03 15:25:04 +01:00
Sébastien Crozet
daba16023a
Comment the argument of the (private) extend_rows function.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
487af7d979
Fix matrix resizing with empty matrices.
...
Fix #306 .
2018-02-03 13:59:05 +01:00
Sébastien Crozet
9bd2890875
Add documentation.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
84a01a720d
Fix unnecessary parenthesis.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
662cc9cd7f
Run rust fmt.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
6d4bfc3b79
Fix warnings.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
5c28af3a53
Add 3d cross-product matrix construction from a vector.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
3dc76caf7e
Add Isometry × Unit<Vector>.
...
Fix #285 .
2018-02-03 13:59:05 +01:00
Sébastien Crozet
144dfbd555
Add quadform/cmpy/cdpy.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
52598de44c
Add rotation_between_axis/scaled_rotation_between_axis.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
dc41b55e5a
Add iamin.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
fcfcc391b5
Rename slice constructors to remove the "_slice" after "new".
2018-02-03 13:59:05 +01:00
Sébastien Crozet
4cb43498a4
Add unsafe slice construction.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
a35e40b38e
Add the repeat
constructor.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
300b3d0452
Add transpose gemv.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
1a7f0dea9f
Add column vector slice aliases.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
1ee8a702ea
Fix quadratic form computation.
...
For the moment only the version that does not make any assumption regarding symmetry is
implemented.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
39d20306f1
Add symmetric quadratic form computation.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
94c1ab8e7b
Add matrix slice construction from array slices.
2018-02-03 13:59:05 +01:00
Sébastien Crozet
adbb7d989e
Add aliases for matrix slices.
2018-02-03 13:59:05 +01:00
Eduard Bopp
098d91cae0
Remove phantom data from matrix debug output
...
Addresses #295 .
2018-01-31 19:24:42 +01:00
Nil Goyette
2ad227661a
Fix RowVector3 cross product
2018-01-17 11:23:27 -05:00
Jack Wrenn
922b339fb0
Implement to_euler_angles for Rotation3 and UnitQuaternion
...
Resolves sebcrozet/nalgebra#243 .
2018-01-09 15:15:57 -05:00
Colin Wallace
e5259130e5
Fix spelling of "below"
2017-10-26 21:13:35 -07:00
Dzmitry Malyshau
94db3f533b
Mint rebase
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
6b6a0717c2
Mint matrices
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
ce2063c191
Mint Euler angles
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
b0127ab5dc
Mint quaternions
2017-10-09 20:22:24 +02:00
Dzmitry Malyshau
7d96007bdb
Mint vector conversions
2017-10-09 20:22:24 +02:00
Eduard Bopp
3a1fb0ed88
Fix feature flagging for abomonation-serialize
...
The tests can now be run without the abomonation feature. Also fixes a
bug in the feature flagging for abomonation.
2017-09-18 20:10:32 +02:00
Sébastien Crozet
48f80d99cc
Fix abomonation integration.
2017-08-15 19:36:38 +02:00
Sébastien Crozet
afef66227e
Merge branch 'master' into abomonation
2017-08-15 19:18:39 +02:00
Sébastien Crozet
740d19437c
Fix unused_result lint errors.
2017-08-15 19:07:18 +02:00
Sébastien Crozet
b475c4da9f
Move set_row
, set_column
from matrix.rs to edition.rs.
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
e84b73c848
Deprecate into_owned and clone_owned for Quaternion, UnitQuaternion, and Transform.
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
b22eb91a16
Add documentation.
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
41f5231446
Add assign
and generalize map
to other return types.
...
The method assign replaces each components with the result of a closure (that takes the
corresponding component as parameter).
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
aaa359f3b0
Remove hand-written rustdoc doc for quaternon and unit_complex.
...
Those are now generated automatically by rustdoc.
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
Eduard Bopp
a45ef26375
Provide safer Abomonation impl for matrix arrays
...
This is more robust than delegating to a slice, which has been removed
upstream due to unsafety. Since we can rely on there being no pointer
indirection in a GenericArray, we just iterate over the array.
2017-08-14 20:53:55 +02:00
Eduard Bopp
e09af0ca82
Implement Abomonation for remaining types
2017-08-14 14:32:02 +02:00
Eduard Bopp
f67a7bd324
Implement Abomonation for rotations
2017-08-14 12:41:03 +02:00
Eduard Bopp
308177a7d6
Implement Abomonation for translations
2017-08-14 12:37:16 +02:00
Eduard Bopp
7c3a05f668
Implement Abomonation for dynamic matrices
2017-08-14 12:33:14 +02:00
Eduard Bopp
49f12a379d
Implement Abomonation for static-size points
2017-08-14 12:18:47 +02:00
Eduard Bopp
65fa4cf740
Implement Abomonation for static matrices
2017-08-14 12:07:06 +02:00
Eduard Bopp
e0cc7ff21b
Fix TCategory implementation for TAffine
...
Closes #271 .
2017-07-29 14:45:20 +02:00
Eduard Bopp
9e02b13f3e
Refer to other conversion method in documentation
...
This is motivated by #235 hoping to improve discoverability of this
feature.
2017-07-28 20:13:52 +02:00
Eduard Bopp
7a62b68c38
Merge pull request #251 from Ralith/unnested-serialization
...
Remove gratuitous indirection in serialization impls
2017-07-26 19:40:57 +02:00
Sébastien Crozet
f86752e44a
De-ambiguat AsRef/AsMut/Into implementations.
...
Addresses comments of #225 .
2017-07-22 09:57:21 +02:00
Eduard Bopp
cfa3c6533f
Merge pull request #242 from sebcrozet/into_iterator
...
Implement IntoIterator for &Matrix and &mut Matrix
2017-07-13 03:12:38 +02:00
Eduard Bopp
69fd070d50
Merge pull request #259 from burtonageo/update_readme
...
update crate documentation to point to latest crates.io version
2017-07-13 03:09:17 +02:00
Brendan Zabarauskas
ba41a8ce5a
Implement the sum and product traits for matrices
...
Closes #264
2017-07-02 01:27:16 +10:00
George Burton
7b17fa58e8
update crate documentation to point to latest
2017-05-20 19:39:02 +01:00
Sébastien Crozet
b78dcb3155
Add methods to set a row or a column of the matrix.
2017-05-17 22:47:45 +02:00
Benjamin Saunders
0979896dbd
Remove gratuitous indirection in serialization impls
2017-05-03 19:51:26 -07:00
Sébastien Crozet
35d2b6dc88
Add kronecker product.
...
Closes #248
2017-05-03 22:47:18 +02:00
Andreas Longva
a52b079578
Relax invertibility test in try_inverse()
...
The previous implementation of try_inverse() used an approximate
check of the determinant against 0 for small matrices to
determine if the matrix was invertible. This is not a reliable test,
and may fail for perfectly invertible matrices. This change
simply makes the test criterion an exact comparison instead.
2017-04-28 19:11:33 +02:00
Sébastien Crozet
485abf1462
Update to serde 1.0.
2017-04-24 20:13:30 +02:00
Sébastien Crozet
68b7d21828
Implement IntoIterator for &Matrix and &mut Matrix
...
IntoIterator for Matrix will beharder to implement.
Partially addresses #241 .
2017-04-11 00:16:43 +02:00
Sébastien Crozet
cbbe1a2aee
Fix html_root_url.
2017-04-09 13:19:27 +02:00
Jonas Olson
9c79937485
Allow for documentation strings in macro component_binop_impl.
2017-04-07 18:42:22 +02:00
Jonas Olson
acfa8586ea
Fix typo in scalar.rs.
2017-04-06 19:49:00 +02:00
Sébastien Crozet
e6ee11617a
Add a method to compute the trace of a matrix.
...
Fix #231 .
2017-03-19 22:44:08 +01:00
Sébastien Crozet
d6285e1165
Implement AsRef, AsMut, Into, From.
2017-02-18 13:44:03 +01:00
Sébastien Crozet
42b48563be
Make serde optional behind the "serde-serialize" feature.
2017-02-15 22:04:34 +01:00
Sébastien Crozet
086e6e719f
Doc + slerp + conversions.
2017-02-12 18:17:09 +01:00
Sébastien Crozet
99b6181b1e
Complete library rewrite.
...
See comments on #207 for details.
2016-12-04 22:47:36 +01:00
nwin
30d37bc6cc
Fixed typos in point.rs and vector.rs.
2016-10-15 12:02:24 +02:00
Sébastien Crozet
89c745fa17
Fix &DMatrix - DMatrix.
...
Fix #203 .
2016-09-06 19:42:28 +02:00
Sébastien Crozet
d442b0479d
Prevent the README cargo example to be compiled as a test.
2016-08-29 21:22:09 +02:00
Sébastien Crozet
8f5b60421c
Add an example dependency entry to the README.
2016-08-29 21:16:15 +02:00
Sébastien Crozet
96d7f68f14
Merge pull request #199 from phaazon/unused-arg
...
Unused arg in ApproxEq removed
2016-08-29 21:11:55 +02:00
Jakub Hlusička
840fa71e67
implement common operations for references
2016-08-26 12:22:13 +02:00
Dimitri Sabadie
4afb2ff476
Fixed tests ( #198 ).
2016-08-26 11:00:34 +02:00
Dimitri Sabadie
a90c2c23fa
Fixed #198 .
2016-08-26 10:09:53 +02:00
Sébastien Crozet
d29ff53329
Implement traits from the algebra crate.
2016-08-21 21:35:56 +02:00
Sébastien Crozet
326b22ac33
Fix benchmarks.
2016-08-16 13:35:17 +02:00
Sébastien Crozet
05a0c12c4a
Add a missing file that defines the Unit
type.
2016-08-16 12:47:11 +02:00
Sébastien Crozet
c4728a33d4
Fix quaternion polar decomposition.
2016-08-16 12:40:39 +02:00
Sébastien Crozet
9c4bff1f85
Rename methods starting with new_with_
to from_
.
2016-08-16 10:48:41 +02: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
Dimitri 'phaazon' Sabadie
1fdd8979af
Fixed Zero and One for Quaternion.
2016-07-30 14:08:55 +02:00
Dimitri Sabadie
988d9272d2
Cleaned up exp(), log() and powf() for Quaternion. Also, they’re for Quaternion only as we cannot define them on UnitQuaternion.
2016-07-29 17:51:35 +02:00
Dimitri Sabadie
213cc41f7d
Added exp(), log() and powf() for Quaternion / UnitQuaternion.
2016-07-29 15:56:04 +02:00
Sébastien Crozet
aa7d4b927c
Implement Display for Identity.
2016-04-30 14:32:16 +02:00
Sébastien Crozet
13a5bee25f
Implement From returning a value (instead of a ref only) for matrices and vectors.
2016-04-19 09:36:30 +02:00
Sébastien Crozet
df872f407d
Replace "col" by "column".
...
Related to #176 .
2016-04-18 08:32:12 +02:00
Sébastien Crozet
0c84d18850
Substitute: diag -> diagonal.
2016-04-17 19:47:56 +02:00
Sébastien Crozet
0380661bd2
Remove some restrictions for NumVector
.
...
This removes the following inheritances:
* Mul<Self, Output = Self>
* Div<Self, Output = Self>
* Add<N, Output = Self>
* Sub<N, Output = Self>
* MulAssign<Self>
* DivAssign<Self>
* AddAssign<N>
* SubAssign<N>
They silently overrided:
* Mul<N, Output = Self>
* Div<N, Output = Self>
* Add<Self, Output = Self>
* Sub<Self, Output = Self>
* MulAssign<N>
* DivAssign<N>
* AddAssign<Self>
* SubAssign<Self>
2016-04-17 19:26:18 +02:00
Sébastien Crozet
479cc7a7ff
Fix compilation when the "generic_sizes" feature is enabled.
2016-04-17 17:42:14 +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
Sébastien Crozet
9a87e2360d
Implement Outer for DVec. ( #186 )
...
Fix #181 .
2016-04-17 13:20:58 +02:00
Sébastien Crozet
9e739676a7
Implement *Assign
traits for everything.
...
Fix #184 .
2016-04-17 12:57:54 +02:00
Jason Orendorff
74fd3e1a04
Support f64 * Vec3<f64>
and so on.
...
To be specific, support is added for `N op T<N>` where `N` is `f32` or `f64`,
`op` is one of `+` `-` `*`, and `T` is one of the `Vec`, `DVec`, `Mat`, or `DMat`
generic types. These are all cases where `T<N> op N` is already supported.
Rust does not support generic impls in this case, but `f32` and `f64` cover
many common cases.
Fixes #182 .
2016-04-17 09:25:08 +02:00
Jeroen Bollen
dea0ccc1fd
Made PntAsVec use associated types. ( #179 )
...
Fix #177
2016-04-17 09:23:37 +02:00
Sébastien Crozet
0dc3b91abd
Fix Ortho when the feature arbitrary
is enabled.
2016-03-31 21:44:42 +02:00
Sébastien Crozet
20bb99c312
Minor documentation fixes.
...
Fix #174 .
2016-03-31 21:30:23 +02:00
Sébastien Crozet
4c58e37910
Make look_at, perspective, and orthographic projection matrices conform to computer-graphics convensions.
...
The `look_at` method itself has been split into a right-handed and a left-handed variant:
`look_at_rh` and `look_at_lh`.
Fix #171 , #158 , #88 , #79 .
2016-03-31 21:22:02 +02:00
Sébastien Crozet
91e14670ed
Add multiplications between Iso, Rot, and Sim.
2016-03-28 17:05:44 +02:00
Sébastien Crozet
5b7af11555
Add Sim/Rot, Sim/Iso, Iso/Rot multiplications.
2016-03-28 15:18:28 +02:00
Sébastien Crozet
02001667f7
Fix look_at matrices + implement Display for statically sized structures.
2016-03-28 14:56:25 +02:00
Sébastien Crozet
60c0f32e1c
Feature-gate the VecN
structure.
...
`rustc` is has a hard time compiling it from time to time.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
fe73e8743f
Minor comment fix.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
cbbf5f138d
Remove the double-dispatch trick for Cast implementations.
...
It is obsolete now that rustc supports multiple trait implementations.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
c1ec00cfe7
Complete the documentation.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
87a80c2de6
Fix tests.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
ceed9e52bd
Implement Arbitrary
for VecN
.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
88fb33cf44
Remove useless or incomplete structs: Vec0
, Pnt0
, Iso4
, Rot4
.
2016-03-24 19:43:50 +01:00
Sébastien Crozet
0c8b8bfcdb
Add similarity transformations Sim2 and Sim3 (uniform scale followed by a rotation followed by a translation).
2016-03-24 19:03:40 +01:00
Sébastien Crozet
f8f4924e47
Add vector perametrizable by their sizes.
2016-03-24 19:03:29 +01:00
Sébastien Crozet
ca6026e5cb
Merge pull request #168 from arturoc/master
...
mat_macros: from_homogeneous_impl was using dimension of src not dst
2016-01-10 16:12:44 +01:00
Sébastien Crozet
d15211737a
Restore most of @oleglite Row/Col implementations lost during the last merge.
2016-01-10 16:10:14 +01:00
Sébastien Crozet
91c4b58bbb
Fix missing trait bounds when the "arbitrary" feature is enabled.
2016-01-10 15:39:54 +01:00
Sébastien Crozet
58de7f461e
DMat{1..6}: make the Col
and Row
implementation return a DVec{1..6} instead of a plain DVec.
...
Also adds the `DVec{1..6}::new_uninitialized(dim)` function.
2016-01-10 15:23:18 +01:00
Sébastien Crozet
1338e0c358
DMat: implement from_row_iter
and from_col_iter
.
...
Those create a DMat by moving its argument into an interator and collecting it.
Fix #167 .
2016-01-10 14:50:08 +01:00
Sébastien Crozet
581251d5b4
Implement dynamic matrix with a maximum size.
...
Those are named DMat1 to DMat6 and have the same relation with DMat as DVec1 to DVec6 are related
to DVec.
As a side effect, the method `to_vec` of DMat was renamed `into_vec` to be more in line with the std lib.
Addresses the second point of #100 .
2016-01-10 14:50:02 +01:00
Sébastien Crozet
3cd4221bf7
Implement Row
and Col
for DMat
.
...
Fix #153 .
2016-01-10 14:49:55 +01:00
Sébastien Crozet
11b49f50c9
Implement Mean
for DVec
, DVecN
, VecN
and MatN
.
...
Fix #166 .
2016-01-10 14:49:48 +01:00
Sébastien Crozet
5cbbc25bb2
Make vectors indexable the same way as slices.
...
This includes range indexing.
In addition, for unification, the methods `.as_slice` and `.as_mut_slice` of DVec have been renamed
to `.as_ref` and `.as_mut`.
2016-01-10 14:49:37 +01:00
arturo castro
4845a0790a
mat_macros: from_homogeneous_impl was using dimension of src not dst
2016-01-08 10:02:06 +01:00
Sébastien Crozet
4098c6c5e5
Make Iso::look_at{_z} static.
...
This did not need to access `self`.
Fix #161 .
2015-11-15 21:56:25 +01:00
Sébastien Crozet
58000e4838
Implement AsRef, AsMut, From for vectors and matrices.
...
This allows pointer conversion between arrays and vectors or matrices.
Those implementations replace the `.as_array()` and `.as_array_mut()` method.
2015-11-15 21:38:28 +01:00
Sébastien Crozet
948341685e
Add implementation of RotationMatrix
for UnitQuat
.
2015-11-15 21:38:23 +01: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
Jeroen Bollen
72ce1881ce
Fixed issue #154 https://github.com/sebcrozet/nalgebra/issues/154
2015-09-15 19:47:27 +02:00
Sébastien Crozet
0bcbd4df4b
Removed unused import.
2015-09-13 23:53:28 +02:00
Antsiscool
f9d79fcf5a
Removed Display trait from Debug method for DMat.
...
DMat was unable to show using debug if the object stored in it did not implement Display.
2015-09-10 14:34:41 +10:00
Anders Kalør
043d7ab108
Fix wrong allocated vector length in RowSlice
...
The length of the returned DVec should correspond to the
the number of elements in the slice and not the number of rows in the
matrix.
2015-08-27 16:55:20 +02:00
Sébastien Crozet
0a8920f11c
Merge pull request #150 from sebcrozet/rustup
...
Fix warnings generated by the last rust-nightly.
2015-08-20 21:46:46 +02:00
Sébastien Crozet
ca3c4e73c5
Fix warnings generated by the last rust-nightly.
2015-08-20 21:41:40 +02:00
Tim Kuehn
e2c21c4ae2
Fix transpose_mut for square matrices.
...
And add a test for it.
2015-08-12 16:52:55 -07: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
Arttu Ylä-Outinen
75208896a3
Fix multiplication of non-square DMats.
...
Matrices were in wrong order.
2015-07-12 10:25:43 +03:00
Sébastien Crozet
c13b0388ef
Remove implementations of Rotation
, Translation
and Transformation
for the Identity
type.
...
Because most of their methods did not make sence for the (constant) identity matrix, they were set
to `panic!` at runtime whenever the user tried to use them. Instead, it is much safer to completely
forbid their use by removing the related trait implementation.
See sebcrozet/ncollide#87 .
2015-07-07 22:40:14 +02:00
mitchmindtree
2efb30876e
Added missing ops implementations for DMat
2015-06-21 01:08:23 +10:00
mitchmindtree
51381ff84d
Allow for non-consuming std operations on DMat. Added DMat multiplication test.
2015-06-21 00:20:39 +10:00
Sébastien Crozet
44df67bde2
Fix the README examples.
2015-06-06 14:28:34 +02:00
Sébastien Crozet
410c3c9566
Add pointwise addition and subtraction for DMat
.
...
Fix #132 .
2015-06-06 12:59:47 +02:00
Sébastien Crozet
ea86890647
Add the RotationTo
trait to compute the delta rotation between two elements.
...
Use `::angle_between` or `.angle_to` to compute the rotation angle between two vectors/rotation
matrices/unit quaternions.
Use `::rotation_between` or `.rotation_to` to compute the rotation matrix/unit quaternion to
transform a vector/rotation matrix/uniq quaternion to another.
Fix #130 .
2015-06-01 22:39:27 +02:00
Sébastien Crozet
ca87f9eb95
Rollup of minor beaking changes.
...
Use associated types for the `Outer` trait.
Add a `Repeat` trait for constructing a multidimensional value by repeating an element.
Split the `Diag` trait into `Diag` and `DiagMut`.
Implement `RustEncodable` for `Identity`.
2015-05-25 14:47:14 +02:00
Tinco Andringa
b26a994659
This reference should not be mut
2015-05-09 16:23:53 +02:00
Sébastien Crozet
5f7b480827
Merge pull request #125 from tinco/add_neg_to_base_float
...
Add neg trait to BaseFloat
2015-05-08 23:55:00 +02:00
Tinco Andringa
83917cb4a4
Qualify the output of FloatVec Neg
2015-05-08 21:44:03 +02:00
Tinco Andringa
f0ce528903
Add neg trait to BaseFloat
2015-05-08 21:03:13 +02:00
Eduard Bopp
730dc40b01
Remove operator hacks
...
The LMul, RMul and Scalar* traits were only necessary due to language
limitations regarding trait bounds that are now gone. The Mat trait is now
expressed in terms of regular operator traits.
However, due to the removal of these traits this constitutes a breaking change.
2015-05-06 13:23:14 +02:00
arturo castro
24fa9c7826
fixes for latest rust
2015-04-23 20:26:16 +02:00
Sébastien Crozet
36223991c1
Remove all deprecated functions/traits.
2015-04-18 14:58:38 +02:00
Sébastien Crozet
313ca1b8ae
Use the Zero
and One
traits from the num
crate.
...
Remove our own definitions of those traits.
Also fixes test-related attributes to make them compile again.
2015-04-18 14:38:34 +02:00
Eduard Bopp
e453bfed47
Use Float trait from num crate
2015-04-04 17:53:25 +02:00
Eduard Bopp
9d428be8b4
Rename frac_2_sqrtpi -> frac_2_sqrt_pi
2015-04-04 17:05:30 +02:00
Anders Kaseorg
e3962e8775
FRAC_2_SQRTPI was renamed to FRAC_2_SQRT_PI
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-04 16:58:11 +02:00
Eduard Bopp
49abb42980
Merge pull request #114 from andersk/neg
...
Remove Neg from BaseNum
2015-04-04 16:44:29 +02:00
Anders Kaseorg
d47cdb5594
Remove Neg from BaseNum
...
As per https://github.com/rust-lang/rust/pull/23945 , Neg is no longer
implemented for unsigned types.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-03 18:59:18 -04:00
Anders Kaseorg
005aebc498
Remove #![feature(core)]
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:53:55 -04:00
Anders Kaseorg
165e095a57
Remove use of num::cast
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:53:55 -04:00
Anders Kaseorg
c1cbf7465d
Remove use of PI_2
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-04-02 04:10:36 -04:00
Anders Kaseorg
1cb3314064
Add type annotation required by rustc 2015-03-31
...
Resolves this error, which is fallout from
https://github.com/rust-lang/rust/pull/23673 :
src/structs/dmat.rs:501:43: 501:74 error: type annotations required: cannot resolve `<f64 as core::ops::Div<_>>::Output == f64` [E0284]
src/structs/dmat.rs:501 let normalizer: N = Cast::from(1.0f64 / Cast::from(self.nrows));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2015-03-31 17:49:09 -04:00
Eduard Bopp
ef4a52d53b
Remove unused feature unboxed_closures
2015-03-29 13:45:33 +02:00
Eduard Bopp
de2351a441
Only use test feature in test configuration
2015-03-29 13:45:33 +02:00
Eduard Bopp
70b4def5cc
Stop using unstable std_misc feature
...
It was only used for `Float::{max_value, min_value}` in non-necessary places,
so for now this helps stabilization for Rust 1.0.
2015-03-29 13:45:33 +02:00
Eduard Bopp
df93ed2d1c
Replace quoted crate declarations
2015-03-29 13:00:09 +02:00
Eduard Bopp
ec5ece46ca
Use slicing syntax instead of deprecated methods
2015-03-29 12:57:16 +02:00
Sébastien Crozet
0988b837dc
Update to the last rust-nighly.
...
Version of rustc: rustc 1.0.0-nightly (123a754cb 2015-03-24).
2015-03-25 22:39:06 +01:00
Pierre Krieger
7c415692c3
Update for rustc
2015-03-23 14:38:48 +01:00
Jameson Ernst
9b8076e179
Add #[repr(C)] to structs likely to be used in ffi
2015-03-01 12:50:17 -08:00
Jameson Ernst
caca330995
Fix deprecated closure syntax
2015-03-01 12:41:13 -08:00
Jameson Ernst
b805f9d829
Fix macros for nightly
2015-03-01 12:34:42 -08: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
Ben Foppa
8d28d7dbd6
FromIterator changes and phantom type annotations.
2015-02-20 18:02:27 -05:00
Eduard Bopp
b2a4918376
Fix bug in UnitQuat construction from Quat
2015-02-17 13:54:56 +01:00
Eduard Bopp
d368270ebc
Fix iterator mutability
...
For loops now consume iterators.
2015-02-17 13:45:25 +01:00
Eduard Bopp
f14f240aa7
Migrate random generation to use crates.io rand
...
The standard library random generation facilities have been deprecated in
favour of a new crate on crates.io.
2015-02-17 13:45:16 +01:00
Peter Atashian
6b71de4665
Update rust
...
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-02-08 02:28:57 -05:00
Sébastien Crozet
316298f825
Merge pull request #87 from aepsil0n/workaround-ice
...
Workaround internal compiler error.
2015-02-04 22:21:51 +01:00
Eduard Bopp
27bfe381d9
Workaround internal compiler error
...
The associated type bound here was not parsed correctly. This is likely due to
the ICE described in rust-lang/rust#20413 .
2015-02-03 19:18:58 +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
39fd7c1ae7
Silence warnings and replace Show
by Debug
.
2015-02-01 16:15:55 +01:00
Eduard Bopp
5ca3e41375
Implement AssertEq for reference types
...
Just as the standard library's PartialEq is implemented for reference types,
the ApproxEq trait should be implemented on them as well. This is mostly an
ergonomic improvement for certain testing situations, where a method yields a
reference. For non-copy types it allows using the assert_approx_… macros, which
would otherwise not be possible.
2015-01-25 19:51:07 +01:00
Zbigniew Siciarz
6d00860ef8
Fix Debug implementation for DMat.
2015-01-24 18:24:35 +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
08049e515e
Coding style fixes.
2015-01-17 22:54:57 +01:00
arturo
f82cb8002d
impl BaseNum for integers
2015-01-16 11:46:56 +01:00
Brett Levin
8c205ea2d0
fix warning from unneeded old_orphan_check
2015-01-10 11:31:26 -08:00
Eduard Bopp
1103996b83
Implement Arbitrary for (almost) all types
...
Rot4 and Iso4 had to be left out, since Rot4 apparently lacks a working
constructor.
Thereby (almost) all types in nalgebra can now be used for quickcheck-style
testing.
"arbitrary" is now a conditionally compiled feature that contains these impls
adding a dependency on quickcheck.
2015-01-10 01:36:13 +01:00
Sébastien Crozet
ce0178785c
Fix automatic text replacement on comments.
2015-01-09 23:01:46 +01:00
Sébastien Crozet
53c80bc72b
Allow unstable items.
...
Some of them don't have any stable equivalent yet.
2015-01-09 22:51:17 +01:00
Sébastien Crozet
4b47b1e98a
Use slice and range syntax when possible.
2015-01-09 22:46:26 +01:00
Sébastien Crozet
2d4e1bfc95
Fix warnings related to the POrd implementation.
2015-01-09 22:34:57 +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
59316d7ca1
Remove tabs.
2015-01-09 22:22:34 +01:00
arturo
fc1fd16e20
fixes compiling on alpha 1.0
2015-01-09 21:55:15 +01:00
Sébastien Crozet
c708632036
Merge pull request #70 from bfops/fnmut
...
Change Fn to FnMut
2015-01-07 22:45:39 +01:00
Ben Foppa
f1fe7315f0
Change Fn to FnMut
2015-01-07 15:16:56 -05:00
Ben Foppa
bd7b4f287f
rustup
2015-01-07 15:14:40 -05:00
Ben Foppa
1429cbf34e
Remove obsolete closure syntax
2015-01-06 18:46:50 -05:00
Pierre Krieger
89edd64204
Update for Rustc
2015-01-05 15:12:06 +01:00
Sébastien Crozet
e94061ed10
Fix an unconstrained type in na::shape
.
2015-01-04 19:43:04 +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
0e2563a88f
Merge pull request #61 from mikedilger/ulps
...
ApproxEq trait enhanced with ULPs method of specifying closeness:
2015-01-04 10:17:54 +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
Eduard Bopp
8f7aac0711
Update to latest Rust
...
The version is rustc 0.13.0-dev (cd614164e 2015-01-02 02:31:12 +0000).
The fixed array syntax was changed from [x, ..3] to [x; 3].
2015-01-03 15:19:52 +01:00
Ben Foppa
b701ca3b58
Update for last rustc of 2014!
2015-01-01 17:23:35 -05:00
Mike Dilger
122c95f2b4
fix macro
2015-01-01 10:41:07 +13:00
Mike Dilger
4c1cfb03cf
ApproxEq trait enhanced with ULPs method of specifying closeness:
...
approx_eq_ulps() allows specification of epsilon as an integer number
of Units in the Last Place (ULPs) difference between the two floating
point values
default approx_ulps() is set to 8.
approx_eq() function continues to use epsilon method, although I
recommend further commits and a migration towards the ULPs method.
2015-01-01 10:12:27 +13:00
Ben Foppa
0ba92a51bd
Fix Encodable/Decodable deprecation warnings
2014-12-25 16:05:33 -05:00
Pierre Krieger
258e7465d4
Fix Neg trait taking self instead of &self
2014-12-23 19:09:06 +01:00
Pierre Krieger
7bfad8e118
Rename std::slice::Items -> std::slice::Iter
2014-12-23 19:01:49 +01:00
Eduard Bopp
e3c2d46f03
Add trailing ';' to all item macros
...
This is a fix for the latest nightly, see
https://github.com/rust-lang/rust/pull/19984 .
2014-12-19 15:33:01 +01: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
Eduard Bopp
11a2b84ee0
Derive Copy wherever sensible
...
Copy is now opt-in, see [1]. To keep the current library functionality it is
derived for all sensibly copyable types.
[1]: 096a28607f
2014-12-10 15:37:49 +01:00
Eduard Bopp
223dc316ad
Update to latest Rust
2014-12-10 15:09:38 +01:00
Eduard Bopp
edaeab72ac
Use object-oriented style for trait methods
...
Wherever sensible the geometric traits now take `&self` arguments, so that
implementations can be invoked as instance methods instead of static methods.
This makes some idioms easier to express and generally allows for greater
flexibility as the restructured methods can still be invoked like static
methods.
Fixes #39 .
2014-12-01 19:44:43 +01:00
Sébastien Crozet
3b44441ce9
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (fac5a0767 2014-11-26 22:37:06 +0000).
2014-11-30 15:47:31 +01:00
Sébastien Crozet
9d5d3f49f9
Do not mantion the double-dispatch on the doc.
2014-11-26 14:36:50 +01:00
Sébastien Crozet
d296bebfac
Replace the double dispatch trick by multidispatch!
...
Fix #38 .
2014-11-26 14:23:30 +01:00
Sébastien Crozet
3317e057f5
Add float constants to BaseFloat
.
...
Fix #42 .
2014-11-25 11:19:31 +01:00
Sébastien Crozet
40c14ace39
Make from_array
-like methods static.
...
Fix #45 .
2014-11-25 11:00:26 +01:00
Eduard Bopp
956c5cdecc
Implement assertion macros for ApproxEq
...
These macros yield readable error messages as test assertions for ApproxEq
types. They can be invoked as:
assert_approx_eq!(a, b);
assert_approx_eq_eps!(a, b, eps);
Fixes #40 .
2014-11-23 14:15:56 +01:00
Eduard Bopp
733219d728
Have ToHomogeneous use &self in method signature
...
I find makes the syntax a bit lighter.
2014-11-22 12:01:45 +01:00
Eduard Bopp
2f3b68bebb
Fix erroneous Translate documentation
...
Looks like it's been copied & pasted without adapting.
2014-11-21 15:59:26 +01:00
Sébastien Crozet
bab38ca6d5
Add conversion from/to arrays for matrices and vectors.
...
Use `.as_array()`, `.as_array_mut()`, `.from_array_ref()`, `.from_array_mut()`.
Fix #33 .
2014-11-21 11:34:46 +01:00
Sébastien Crozet
d8dfedbf99
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (336349c93 2014-11-17 20:37:19 +0000).
2014-11-19 12:11:32 +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
226b115f1e
Overload DVec * DVec -> DVec
and DVec / Dvec -> DVec
.
...
Fix #31 .
2014-11-06 23:17:35 +01:00
Sébastien Crozet
a2848e6e18
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (63c4f22f2 2014-11-05 22:31:44 +0000).
2014-11-06 14:52:52 +01:00
Sébastien Crozet
3834913402
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (3327ecca4 2014-11-01 22:41:48 +0000).
2014-11-02 22:47:11 +01:00
Sébastien Crozet
eb745df4bc
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (221fc1e3c 2014-10-31 02:27:15 +0000).
2014-10-31 17:40:47 +01:00
Sébastien Crozet
36d3e88cb0
Do not automatically impl Scalar{Mul,Div,Add,Sub}.
...
This makes them implementable without using the double dispatch trick.
2014-10-30 09:21:22 +01:00
Sébastien Crozet
93b184815f
Always use Cast<f64>
instead of Cast<f32>
.
2014-10-30 09:21:22 +01:00
Sébastien Crozet
6b4b25acd4
Basis: add a method to compute the i-th element of the canonical basis.
2014-10-30 09:21:20 +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
6a194b2b62
Rename: Any{Vec,Pnt} to Num{Vec,Pnt} + do not impl them automatically.
...
Instead, implement them manually. This clarifies error messages for the users.
2014-10-30 09:21:19 +01:00
Sébastien Crozet
628aac0961
Coding style fix.
2014-10-30 09:21:18 +01:00
Sébastien Crozet
a0fffe93a9
Move the .shape()
method to its own trait: Shape
.
2014-10-30 09:21:18 +01:00
Sébastien Crozet
3354ffc37b
Make FloatPnt and FloatVec derive from Index
.
...
The point it that `Index` provides the i-th element decomposed into the trivial basis of their
associated vector spaces.
2014-10-30 08:38:05 +01:00
Sébastien Crozet
2b23446d54
Matrix Index/IndexMut implementation: return an element instead of a column.
...
There is no reason why indexing would prefer returning a column instead of a line. Instead, we
return an element, and let the user use the `Col` and `Row` traits istead.
2014-10-30 08:38:05 +01:00
Sébastien Crozet
eb24c4063f
Remove the {Any,Float}{Pnt,Vec}Ext traits.
...
They are meaningless and too hard to implement in an ad-hoc way to be really useful.
2014-10-30 08:38:05 +01:00
Sébastien Crozet
074c9356bf
Rename: PartialOrd -> POrd, PartialOrdering -> POrdering.
...
This avoids name clashes with the standard library.
2014-10-30 08:38:05 +01:00
Sébastien Crozet
a960afa4f9
Make AnyVec
inherit from Basis
.
...
Every vector must have a basis.
2014-10-30 08:38:05 +01:00
Sébastien Crozet
2f273d655a
Rename: VecExt -> AnyVecExt, PntExt -> AnyPntExt.
2014-10-30 08:38:05 +01:00
Steve Klabnik
426ba307ab
fail -> panic
2014-10-30 00:25:47 -04:00
Robin Gloster
4e4eb62ffc
upgrade to newer rust
2014-10-22 13:35:17 +02:00
Sébastien Crozet
e2fc8aa764
Deprecate to_pnt
, as_pnt
and VecAsPnt
.
...
Those are meaningless. Use `na::orig() + the_vector` instead.
2014-10-20 22:35:43 +02:00
Sébastien Crozet
276bf3f999
Update to the last rust-nightly.
...
Version of rustc: 0.13.0-nightly (222ae8b9b 2014-10-18 00:47:22 +0000).
2014-10-18 20:52:35 +02:00
Sébastien Crozet
8288ebdfab
Add quaternions to the feature list.
2014-10-14 22:24:10 +02:00
Sébastien Crozet
5ba9f27530
Add quaternions.
...
Fix #24 .
2014-10-14 22:20:49 +02:00
Sébastien Crozet
162346ab47
Fix typos.
2014-10-13 08:46:39 +02:00
Sébastien Crozet
0cf725f5f2
Add 3D orthogonal and perspective projection structures.
...
Fix #26 .
2014-10-12 20:40:46 +02:00
Sébastien Crozet
03eda09084
Some documentation fixes.
...
Fix #25 .
2014-10-12 10:35:56 +02:00
Sébastien Crozet
b6090042ac
Add a Axpy
that implements y <- y + ax.
...
This is very useful for accumulations to compute, e.g. centers.
2014-10-12 09:24:16 +02:00
Sébastien Crozet
de2479b70f
Do not implement Transform<Vec*> for Vec*
.
...
This is error prone as this is a no-op for vectors and a translation for points.
2014-10-11 00:23:10 +02:00
Sébastien Crozet
70de340498
Remove the Iso * Vec
overload and the ability to Transform a Vector with an Iso.
...
This is too error prone as the user has to remember if he is using a vector or a point.
Istead, to transform a vector with an Isometry, use the internal rotation matrix of the isometry:
`iso.rotation * vector` instead of `iso * vector`.
The `Rotation` trait can also be used.
2014-10-10 22:21:05 +02:00
Sébastien Crozet
bf67f079e7
Add a function nalgebra::center(a, b)
that computes the center of two points.
2014-10-10 21:24:18 +02:00
Sébastien Crozet
b3e7540b3c
Delete the deprecated na::
module.
2014-10-10 20:57:20 +02:00
Sébastien Crozet
6fb6d35980
Documentation fixes.
2014-10-10 20:56:40 +02:00
Sébastien Crozet
e852eb4783
Fix the implementation of ToHomogeneous
for Iso*
.
2014-10-10 20:56:24 +02:00
Sébastien Crozet
7e9bb98823
Add to_pnt
and to_vec
methods.
2014-10-10 12:19:37 +02:00
Sébastien Crozet
924d8269d8
Add points.
...
This adds the Pnt{1,2,3,4,5,6} structures.
This adds the traits:
− AnyPnt
− FloatPnt
− PntExt
− FloatPntExt
− Orig (to return the zero point)
− PntAsVec
− VecAsPnt
This adds operator overloading:
− Pnt + Vec
− Pnt - Vec
− Pnt * Scalar
− Pnt / Scalar
− Pnt + Scalar
− Pnt - Scalar
− Iso * Pnt
− Rot * Pnt
− Pnt * Iso
− Pnt * Rot
This changes some behavior:
− Iso multiplication with a Vec does not translate the vector any more.
− ToHomogeneous adds a 0.0 at the end of a Vec and a 1.0 at the end of a Pnt.
− FromHomogeneous performs w-normalization on a Pnt, but not on a Vec.
− The Translate<Vec> trait is never implemented (i-e. a Vec is not to be translated).
cc #25
2014-10-10 11:45:20 +02:00
Sébastien Crozet
ba18f5aa70
Deprecate na::
, move all reexport to the root crate.
...
This also moves the tests and benches to cargo-complient folders.
Fix #21 .
2014-09-28 19:22:57 +02:00
Sébastien Crozet
8f89ac421c
Update to the last rust.
...
Version of rustc: rustc 0.12.0-nightly (d64b4103d 2014-09-26 21:47:47 +0000).
2014-09-27 09:54:03 +02:00
Sébastien Crozet
a9c7fe7420
Fix the matrix inversion test.
...
This prevent the test from failing when the matrix is non-inversible.
2014-09-19 23:53:36 +02:00
Sébastien Crozet
086088a0ed
Fix the implementation of Row
for fixed-size matrices.
...
Matrices are column-major.
2014-09-19 23:51:27 +02:00
Sébastien Crozet
1945cb09f2
Merge pull request #20 from bjz/warnings
...
Fix warnings
2014-09-19 23:43:46 +02:00
Brendan Zabarauskas
d3abbfcd4c
Fix warnings
2014-09-18 15:20:04 +10:00
Brendan Zabarauskas
b6959ef913
Implement index operators
...
Closes #18
2014-09-18 12:23:52 +10:00
Ben Foppa
6c8f14966c
update for rustc 21d1f4d7c
2014-09-15 21:30:36 -04:00
Sébastien Crozet
560dff3891
Update to the last rust-nightly.
...
Version of rustc: 0.12.0-pre-nightly (2e92c67dc 2014-08-28 23:56:20 +0000).
2014-08-29 21:35:42 +02:00
Sébastien Crozet
c408d5a0b2
Update to the last rust-nightly.
...
Version of rustc: 0.12.0-pre-nightly (01ec6fab2 2014-08-18 00:46:10 +0000).
2014-08-18 19:35:47 +02:00
Sébastien Crozet
ff95e2a9d8
Remove the shifting from the qr algorithm.
2014-08-17 22:42:16 +02:00
Sébastien Crozet
844092205e
Do not compute the matrix inverse if the determinant is near-zero.
2014-08-17 22:41:55 +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
663f8b3ccb
Add a Diag
to build, get and set a matrix diagonal.
2014-08-16 13:22:53 +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
7d6884c3df
Add a Det
trait to compute the determinant + implement it for Mat{1,2,3}
.
2014-08-11 19:54:13 +02:00
Sébastien Crozet
2f0234e7ac
Avoid modulo on DMat::from_fn
.
2014-07-27 09:13:13 +02:00
Nathan Stien
ebe1ed1f16
Fix coordinate calculation in DMat::from_fn().
...
The builder function `f` was receiving incorrect coordinates, often
involving a uint underflow.
Added a test case to verify the new behavior.
2014-07-26 19:03:37 -05:00
Sébastien Crozet
5b1388888b
Update the compilation section of the README.
2014-07-14 17:56:35 +02:00
Sébastien Crozet
65211aa89a
Cleanup the Makefile + update travis.yml.
2014-07-14 16:27:46 +02:00
Sébastien Crozet
11ee4e46b1
Make cargo build a rlib too.
2014-07-14 13:48:31 +02:00
Sébastien Crozet
2ff660dfe1
Add a ScalarMul
and a ScalarDiv
trait.
...
Those might be useful to overcome rust limitations wrt operator overloading.
2014-07-13 11:43:05 +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
7b9a3f2bb9
Update to the last rust-nightly.
...
Version of rustc: 0.11.0-nightly (459f155f81291c46633e86a480628b50304ffb1c 2014-07-04 23:46:44 +0000).
2014-07-05 10:33:57 +02:00
Sébastien Crozet
ecbc159521
Update some links to point on nalgebra.org
.
2014-06-09 21:48:24 +02:00
Sébastien Crozet
efc2f46019
Update to the last rust-nightly.
...
Version of rustc: 0.11.0-pre-nightly (e55f64f 2014-06-09 01:11:58 -0700).
2014-06-09 21:03:36 +02:00
Sébastien Crozet
5066d6b9de
Update to the last rust-nightly.
...
Version of rustc: 0.11.0-pre-nightly (918dbfe 2014-06-02 20:51:30 -0700).
2014-06-03 22:37:46 +02:00
Sébastien Crozet
f6c597f102
Update to the last rust-nightly.
...
Version of rustc: 0.11.0-pre-nightly (faa7ba7 2014-05-31 01:06:40 -0700).
Main changes:
* `cmp::Ord` -> `cmp::PartialOrd`
* `cmp::Eq` -> `cmp::PartialEq`
Note that `na::PartialOrd` is not the same as `cmp::PartialOrd`
(which lacks a lot of partial ordering operators).
2014-06-01 15:22:11 +02:00
Leo Lahti
f8ad8aa02b
Fixed issue #13
2014-05-30 21:14:16 +00:00
Sébastien Crozet
40c5f5deb8
Rename matrix-scalar and vector-scalar operator-overloading-related traits to avoid name clashes.
2014-05-22 19:54:54 +02:00
Franklin Delehelle (Vampire.local)
6468360edb
Compile with nightlies
2014-05-21 13:08:04 +02:00
Vincent Barrielle
987b91767a
update to the latest rust: FloatMath for math functions (sin/exp/...)
...
Also removed a bunch of duplicate trait usages
2014-05-16 21:04:35 +02:00
Vincent Barrielle
f8ac86effc
update to latest rust
2014-05-13 08:29:56 +02:00
Vincent Barrielle
a1fdec3b52
Merge remote-tracking branch 'origin/master' into genericQR
2014-05-13 08:27:52 +02:00
Vincent Barrielle
73c6610048
new_identity and housholder matrix available under na::
2014-05-12 21:54:59 +02:00
Vincent Barrielle
3dc0e27fd2
fix typo
2014-05-12 21:54:18 +02:00
Vincent Barrielle
76a8bc3cf1
QR factorization for fixed size matrices.
...
The ColSlice implementation for fixed size matrices returns a DVec,
while this is probably not optimal performance-wise, the dynamic nature
of the result makes this necessary. Using a data type presenting the
ImmutableVector trait would solve this, but it looks like a non-trivial
change.
2014-05-12 14:06:25 +02:00
Alexander Christiansson
5d8727a17d
std::cast::transmute -> std::mem::transmute
2014-05-12 01:31:22 +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
Vincent Barrielle
2fd880a62d
implemented QR factorization
...
this is a first sketch, the algorithm is not yet initialized and relies
on knowledge of DMat internals. A next step would be to implement this
algorithm in a more generic manner.
2014-05-09 18:59:26 +02:00
Sébastien Crozet
9badebf24c
Give access to the traits required for generalized operator overloading.
...
Those are `Vec3MulRhs`-like traits that allow the simulation of haskellish fundeps to allow multiple
overloads of builtin operators (* / + -).
They are all on the `na::overload` module.
2014-05-08 23:21:36 +02:00
Sébastien Crozet
7ef933aefb
Update to the last Rust.
...
Version of rustc: 0.11-pre (eea4909 2014-04-24 23:41:15 -0700)
Vector do not implement `Rand` anymore.
2014-04-25 20:28:29 +02:00
Sébastien Crozet
1eed234e08
Avoid name conflicts with the standard lib.
...
The `Vec` trait is renamed `AnyVec`.
The `Less`, `Greater`, `Equal` variants are renamed `PartialLess`, `PartialGreater`,
`PartialEqual`.
Those new names are not very good, so they might change in the future.
2014-04-13 10:37:39 +02:00
Sébastien Crozet
16aa5c8937
Make Iso* fields public again.
2014-04-03 20:52:52 +02:00
Sébastien Crozet
06e18d214a
Update to the last Rust.
...
Version of rustc: 0.10-pre (b8ef9fd 2014-03-31 15:51:33 -0700)
struct fields are now public by default.
2014-04-01 23:00:59 +02:00
Sébastien Crozet
1edecbcee4
Automatically derive TotalEq
whenever Eq
is derived.
2014-03-28 21:40:30 +01:00
Sébastien Crozet
4435d2f7f4
Update to the last Rust.
...
Version of rustc: rustc 0.10-pre (b8601a3 2014-03-28 06:26:47 -0700)
2014-03-28 20:58:09 +01:00
Sébastien Crozet
1dade3bd24
Remove every use std::vec::Vec
.
...
It is part of the Rust prelude now.
2014-03-22 08:14:15 +01:00
Sébastien Crozet
915d8c057e
Update to the last Rust.
...
Version of rustc: 0.10-pre (7b957a8 2014-03-21 08:21:51 -0700)
2014-03-21 21:57:58 +01:00
Sébastien Crozet
606ad947c9
Use Vec instead of ~[].
...
Version of rustc: 0.10-pre (fc7a112 2014-03-14 23:11:31 -0700)
2014-03-15 12:23:54 +01:00
Peter Nguyen
fc10742b5c
Change std::rand to rand in lower_triangular.rs
2014-03-13 19:35:01 -04:00
Peter Nguyen
503b567b27
Update to latest Rust.
...
Version of rustc: rustc 0.10-pre (4d64441 2014-03-12 15:07:06 -0700)
2014-03-13 18:20:04 -04:00
Peter Nguyen
7bc561c835
Update to latest rust.
...
`std::rand` was moved to it's own crate.
Version of rustc: rustc 0.10-pre (4d64441 2014-03-12 15:07:06 -0700)
2014-03-13 17:47:03 -04:00
Sébastien Crozet
13430866d4
Remove the DeepClone derivings.
...
Version of rustc: 0.10-pre (e959c87 2014-03-08 22:41:45 -0800)
2014-03-09 10:09:08 +01:00
Sébastien Crozet
57dfc14139
Update to the last Rust.
...
Version of rustc: 0.10-pre (4243cad 2014-02-24 22:17:02 -0800)
2014-02-25 09:41:41 +01:00
Sébastien Crozet
c834439009
Update to the last rust.
...
Version of rustc: 0.10-pre (a5342d5 2014-02-23 22:06:50 -0800)
2014-02-24 11:48:02 +01:00
Sébastien Crozet
ba32051fdf
Add deriving Hash
and Show
.
2014-02-23 08:44:21 +01:00
Sébastien Crozet
9a49bb5895
Update to the last Rust.
...
Version of rustc: 0.10-pre (698042d 2014-02-21 21:26:49 -0800)
2014-02-22 09:09:04 +01:00
Sébastien Crozet
0eab5e0d4f
Add free functions for partial ordering comparison operators.
2014-02-18 12:53:15 +01:00
Sébastien Crozet
9fb67f8125
Add more comparison default methods to the PartialOrd
trait.
...
This allows for some optimization.
2014-02-18 12:48:52 +01:00
Sébastien Crozet
becb77843e
Update to the last Rust.
...
Version of rustc: 0.10-pre (b0ce960 2014-02-17 22:16:51 -0800)
This replaces uses of the `Orderable` trait by a `PartialOrd` trait: the `min` and `max` methods
are replaced by `inf` and `sup` methods.
Vectors do not implement the `Ord` trait any more.
Fix #4
2014-02-18 12:13:40 +01:00
Eduard Bopp
513fb33e4a
Fix call to swap function due to upstream changes
...
Rust moved this function from std::util (which has been dissolved now) to std::mem.
2014-02-11 20:34:28 +01:00
Sébastien Crozet
96e77e4cfd
Update to the last Rust.
...
Version of rustc: 0.10-pre (9a672f9 2014-02-05 18:31:36 -0800)
2014-02-06 08:59:27 +01:00
Sébastien Crozet
85c67b5544
Activate the unused_results lint.
2014-01-31 15:26:25 +01:00
Sébastien Crozet
d50afdf645
Update to the last Rust.
...
Version of rustc: 0.10-pre (e3b1f3c 2014-01-29 23:46:26 -0800)
2014-01-30 11:28:15 +01:00
Sébastien Crozet
4c262bb91d
Remove useless parenthesis.
2014-01-23 01:22:23 +01:00
Sébastien Crozet
f018478117
Fix the doc root url.
2014-01-21 08:24:23 +01:00
Sébastien Crozet
836a0d40ae
Modify .travis.yml
to generate the documentation.
2014-01-21 08:13:10 +01:00
Sébastien Crozet
8de8c94b45
Update to the last Rust.
...
Version of rustc: 0.10-pre (d4640f9 2014-01-20 11:41:29 -0800)
This also removes the `PVec` type due to lack of use-case.
2014-01-20 23:41:22 +01:00
Sébastien Crozet
9dd8bb4ea2
Fix the documentation for na::inv_translate
.
2014-01-19 16:22:58 +01:00
Sébastien Crozet
5463da79ae
Make make test
test the documentation examples too.
2014-01-19 16:16:12 +01:00
Sébastien Crozet
79008262cb
Doc: fix some typos.
2014-01-19 15:49:32 +01:00
Sébastien Crozet
cbebbe8961
Add the html_doc_url
attribute.
2014-01-18 19:57:36 +01:00
Sébastien Crozet
197f7ff4d2
Update to the last Rust
...
Version of rustc: 0.10-pre (1da2962 2014-01-17 23:41:45 -0800)
Iterators were renamed.
2014-01-18 10:49:47 +01:00