sebcrozet
677f355143
Run rustfmt.
2020-04-05 23:19:10 +02:00
Sébastien Crozet
b81aed767f
Merge pull request #713 from rustsim/soa_simd
...
Switch to Simba and make the base and geometry modules mostly SIMD AoSoA friendly.
2020-04-05 21:16:48 +02:00
sebcrozet
bbb3be512e
Run cargo fmt.
2020-04-05 18:49:48 +02:00
sebcrozet
691f58b622
Fix compilation of tests.
2020-04-05 18:33:03 +02:00
sebcrozet
2c03353b30
Add missing docs.
2020-04-05 18:02:03 +02:00
sebcrozet
c5dad7f960
Re-add all the alga trait impls behind a feature.
2020-04-05 17:53:27 +02:00
Chia-Sheng Chen
65bc037b5d
Supplement the document of fn as_ptr
2020-04-03 17:56:08 +08:00
Chia-Sheng Chen
b996a6f0ce
Supplement the document of fn vector_to_matrix_index
2020-04-03 17:39:49 +08:00
Fan Jiang
0e69df2999
Update format
2020-04-01 01:14:32 -04:00
Fan Jiang
451c61e293
Add TODO notice and reference to issue
2020-03-31 17:04:10 -04:00
Fan Jiang
526dac1914
Be more specific on what is happening here
2020-03-31 17:03:07 -04:00
Fan Jiang
74bfd9cad6
Change to the recommended style of using MaybeUninit
2020-03-31 16:50:26 -04:00
Sébastien Crozet
81bb9e94f8
Re-add orthogonalization and subspace basis computation.
2020-03-24 19:06:05 +01:00
Sébastien Crozet
8ef46d62cb
Re-add inf/sup.
2020-03-24 19:05:47 +01:00
sebcrozet
b3f347e45e
Add From<[...; .]> impls for all SIMD geometric sructures up to the isometry (excluded).
2020-03-23 09:16:01 +01:00
sebcrozet
f8cd26cfa9
Replace alga by simba.
2020-03-21 12:16:46 +01:00
Sébastien Crozet
002e735c76
Make blas, matrix, norm, and ops.rs compatible with SoA Simd.
2020-03-17 17:58:36 +01:00
Fan Jiang
fe75c60325
Fix warnings on latest rustc
2020-03-10 18:20:52 -04:00
Sébastien Crozet
155ba3a50a
Merge pull request #698 from rustsim/try_set_magnitude
...
Add a method to set the magnitude of a vector.
2020-03-02 12:45:39 +01:00
Sébastien Crozet
1d64de3822
Merge pull request #609 from aplund/dev
...
Refactor row_sum() and column_sum() to cover more cases.
2020-03-02 12:45:39 +01:00
sebcrozet
b09d9770f7
Add a method to set the magnitude of a vector.
2020-03-02 12:45:39 +01:00
Sébastien Crozet
a67c451ae5
Merge pull request #607 from cauthmann/dev
...
Add #[must_use] to all functions with a _mut variant (#598 )
2020-03-02 12:45:39 +01:00
S.Brandeis
6d608cb99f
Revert "Broader PartialEq implementation for types implementing Dim trait"
...
This reverts commit 6f5c9c0f
2020-03-02 12:45:38 +01:00
S.Brandeis
08d990f276
Make shape check a one-liner in impl PartialEq for Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
d35ef06f44
Remove unnecessary PartialEq trait use in PartialEq impl for Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
403e63dc5e
Remove trailing whitespace
2020-03-02 12:45:38 +01:00
S.Brandeis
8a3f6a12cd
Refactor and move named_dimension! macro
2020-03-02 12:45:38 +01:00
S.Brandeis
50ea55e877
Modify PartialEq for Matrix to allow comparison with all types of Matrix
2020-03-02 12:45:38 +01:00
S.Brandeis
2b8410e08b
Fix bug - PartialEq for Matrix no longer panics when shapes do not match
2020-03-02 12:45:38 +01:00
S.Brandeis
39a433c0e7
Broader PartialEq implementation for types implementing Dim trait
2020-03-02 12:45:38 +01:00
Sébastien Crozet
12fa938516
Merge pull request #686 from rustsim/fix_vector_slerp
...
Fix slerp for regular vectors.
2020-03-02 12:45:38 +01:00
sebcrozet
e911bfc7db
Fix doc-test for vector slerp.
2020-03-02 12:45:38 +01:00
sebcrozet
5f4a0c7b13
Fix slerp for regular vectors.
2020-03-02 12:45:38 +01:00
Sébastien Crozet
9ec8d4dbd8
Merge pull request #688 from rustsim/matrix_to_slice
...
Add matrix/slice conversions.
2020-03-02 12:45:37 +01:00
Mara Bos
43747b4f59
Implement Extend<&N> for VecStorage.
...
Extend<N> was already implemented, but nalgebra vectors/matrices give
iterators that give &N, not N, so implementing Extend<&N> as well makes
it easier to use.
It seems common practice to do so: The standard library's Vec also
implments Extend for both T and &T.
2020-03-02 12:45:37 +01:00
Sébastien Crozet
2728827a45
Merge pull request #684 from aweinstock314/scalar-inlined-clone
...
Add inlined_clone to Scalar, and relax bounds from `Scalar + Copy` to…
2020-03-02 12:45:37 +01:00
sebcrozet
8bf94f7afb
Add matrix/slice conversions.
...
Fix #687 .
2020-03-02 12:45:37 +01:00
Sébastien Crozet
999c48e6ed
Merge pull request #680 from aweinstock314/copy-scalar-separation
...
Move `Copy` constraint from the definition of `Scalar` to all its use…
2020-03-02 12:45:37 +01:00
Avi Weinstock
774f4da3e2
Add Clone
to Scalar
, providing a default implementation of inlined_clone
. Change Scalar + Clone
bounds to just Scalar
.
2020-03-02 12:45:37 +01:00
Avi Weinstock
52aac8b975
Add inlined_clone to Scalar, and relax bounds from Scalar + Copy
to Scalar + Clone
nearly everywhere.
...
The various nalgebra-lapack FooScalars are still Copy because they make use of uninitialized memory.
nalgebgra-glm Number still uses Copy because upstream `approx` requires it.
2020-03-02 12:45:37 +01:00
Aaron Hill
6bb355f4d0
Fix some out-of-bounds offset
calls
...
After we yield the final element from the iterator, we don't offset
`ptr` agian, to avoid having it go out-of-bounds.
However, `inner_end` may be several elements out-of-bounds, depending on
the value of `size`. Therefore, we use `wrapping_offset` to avoid
undefined behavior.
2020-03-02 12:45:37 +01:00
Avi Weinstock
6c236af696
Add Scalar + Copy bounds to code that's under feature flags.
...
`./ci/test.sh` now passes locally.
Refactoring done via the following sed commands:
```bash
export RELEVANT_SOURCEFILES="$(find src -name '*.rs') $(find examples -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Arbitrary\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Serialize\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Deserialize\)/N\1: Scalar + Copy + \2/' $f; do
export RELEVANT_SOURCEFILES="$(find nalgebra-glm -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar,/N\1: Scalar + Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar>/N\1: Scalar + Copy>/' $f; done
for f in algebra-glm/src/traits.rs; do sed -i 's/Scalar + Ring/Scalar + Copy + Ring>/' $f; done # Number trait definition
```
2020-03-02 12:45:37 +01:00
Sébastien Crozet
e0db624031
Merge pull request #662 from Aaron1011/fix/final-offset
...
Don't call 'offset' on a dangling pointer
2020-03-02 12:45:37 +01:00
Avi Weinstock
7d99015473
Move Copy
constraint from the definition of Scalar
to all its use-sites.
...
This should semantically be a no-op, but enables refactorings to use non-Copy scalars on a case-by-case basis.
Also, the only instance of a `One + Zero` trait bound was changed into a `Zero + One` bound to match the others.
The following sed scripts were used in the refactoring (with each clause added to reduce the error count of `cargo check`):
```bash
export RELEVANT_SOURCEFILES="$(find src -name '*.rs') $(find examples -name '*.rs')"
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar,/N: Scalar+Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Field/N: Scalar + Copy + Field/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Zero/N: Scalar + Copy + Zero/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Closed/N: Scalar + Copy + Closed/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + Eq/N: Scalar + Copy + Eq/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + PartialOrd/N: Scalar + Copy + PartialOrd/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + Zero/N: Scalar + Copy + Zero/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + PartialEq/N: Scalar + Copy + PartialEq/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar>/N: Scalar+Copy>/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: Scalar + $bound/N: Scalar + Copy + $bound/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + $bound/N: Scalar + Copy + $bound/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar,/N\1: Scalar+Copy,/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N: *Scalar + $trait/N: Scalar + Copy + $trait/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar + Superset/N\1: Scalar + Copy + Superset/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\): *Scalar + \([a-zA-Z]*Eq\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \([a-zA-Z]*Eq\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(hash::\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar {/N\1: Scalar + Copy {/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Zero\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Bounded\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Lattice\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Meet\|Join\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(fmt::\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Ring\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Hash\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Send\|Sync\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/One + Zero/Zero + One/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \(Zero\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar + \($marker\)/N\1: Scalar + Copy + \2/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/N\([0-9]\?\): *Scalar>/N\1: Scalar + Copy>/' $f; done
for f in $RELEVANT_SOURCEFILES; do sed -i 's/Scalar+Copy/Scalar + Copy/' $f; done
```
2020-03-02 12:45:37 +01:00
Sébastien Crozet
5a0ee23e3b
Fix Vector::axpy for noncommutative cases ( #648 )
...
Fix Vector::axpy for noncommutative cases
2020-03-02 12:45:37 +01:00
Aaron Hill
e981283500
Switch to wrapping_offset
instead of unsafe offset
2020-03-02 12:45:37 +01:00
Jakub Konka
fe65b1c129
Add Vector::axcpy method
...
The added method `Vector::axcpy` generalises `Vector::gemv` to
noncommutative cases since it allows us to write for `gemv`
`self.axcpy(alpha, &col2, val, beta)`, instead the usual
`self.axpy(alpha * val, &col2, beta)`. Hence, `axcpy` preserves the
order of scalar multiplication which is important for applications where
commutativity is not guaranteed (e.g., matrices of quaternions, etc.).
This commmit also removes helpers `array_axpy` and `array_ax`, and
replaces them with `array_axcpy` and `array_axc` respectively, which
like above preserve the order of scalar multiplication.
Finally, `Vector::axpy` is preserved, however, now expressed in terms of
`Vector::axcpy` like so:
```
self.axcpy(alpha * val, &col2, beta)
```
2020-03-02 12:45:37 +01:00
Aaron Hill
4e25bd87fb
Don't call 'offset' on a dangling pointer
...
When creating a matrix with only one zero dimension, we end up with a
matrix with a total size of zero, but a non-zero stride for elements.
While such a matrix can never actually have any elements, we need to be
careful with how we use the pointer associated with it.
Since such a pointer will always be dangling, it can never be used with `ptr.offset`,
which requires that the pointer be in-bounds or one passed the end of an
allocation. Violating this results in undefined behavior.
This commit adds in checks before the uses of `ptr.offset`. If we ever
need to offset from a pointer when our actual allocation size is zero,
we skip offsetting, and return the original pointer. This is fine
because any actual use of the original or offsetted pointer would
already be undefined behavior - we shoul never be trying to dereference
the pointer associated with a zero-size matrix.
This issue was caught be running `cargo miri test` on the project.
2020-03-02 12:45:37 +01:00
Jakub Konka
e1c8e1bccf
Fix Vector::axpy for noncommutative cases
...
One example would be performing simple matrix multiplication
over a division algebra such as quaternions.
2020-03-02 12:45:37 +01:00
Andreas Longva
2f77d73226
Generalize From<_> for MatrixSlice(Mut) to allow different strides
2020-03-02 12:45:35 +01:00
Andreas Longva
a05aa313da
Implement From<&Matrix> for MatrixSlice
2020-03-02 12:45:35 +01:00
Edoardo Morandi
d0d1172d4b
Rand 0.6 -> 0.7
...
* Bumped rand version to 0.7
* Added dependency to rand_distr
* Bumped quickcheck version to 0.9 (because of rand)
* Bumped rand_xorshift version to 0.2
2019-10-28 14:15:03 +01:00
Pierre Avital
b5f43c6efc
Switched fmt implementation to a macro, applied that macro to all formats in std
2019-10-28 14:15:03 +01:00
Pierre Avital
6ee0e02612
implemented LowerExp
2019-10-28 14:15:03 +01:00
sebcrozet
be41cb96e8
GEMM on empty matrices: properly take the beta parameter into account.
2019-10-28 14:15:03 +01:00
sebcrozet
8e759ade83
Fix multiplication between matrices of dimension 0.
...
Fix #644
2019-10-28 14:15:03 +01:00
Koen Deschacht
fba61923ae
.min() and .max(): updated examples to be more concise
2019-10-28 14:15:03 +01:00
Koen Deschacht
8f0ee9fa90
Allow getting .min() and .max() of matrices of unsigned integers
2019-10-28 14:15:03 +01:00
sebcrozet
cfb654240c
Matrix::transform_point: correctly take the normalization term into account.
...
Fix #640
2019-08-27 22:05:28 +02:00
Fabian Löschner
e170729f67
Simplified ordering check
2019-08-27 22:05:28 +02:00
Fabian Löschner
a06b833343
More elegant initial value for xcmp
2019-08-27 22:05:28 +02:00
Fabian Löschner
c625a37525
Undo breaking changes
2019-08-27 22:05:28 +02:00
Fabian Löschner
a4a5750ccd
Clarified documentation of min/max behaviour
2019-08-27 22:05:28 +02:00
Fabian Löschner
d21c65f755
Fix for [a,ca]min/max methods.
...
Panic on empty matrices, propagate NaN, fix of wrong results, added doc tests
2019-08-27 22:05:28 +02:00
Jake Shadle
4fa4a6b854
HTTPS All The Things ( #608 )
...
* Use https for all links where it is valid
* Fix random links to external sites
2019-08-27 22:05:28 +02:00
Jack Wrenn
c8ae3839c1
simplify anti-aliasing assertion
2019-08-27 22:05:28 +02:00
Jack Wrenn
2e273ad6c5
prevent constructing MatrixSliceMutMN
for which disjoint indices may alias the same linear index
...
Fixes #486 .
2019-08-27 22:05:28 +02:00
Stefan Mesken
e86ab5db3d
removed depedency on Vec
2019-08-27 22:05:28 +02:00
Stefan Mesken
4add995c1b
addressed Trevis CI error
2019-08-27 22:05:28 +02:00
Stefan Mesken
3baefb1319
Allow the removal of multiple rows/columns given an array of indices. #530
2019-08-27 22:05:28 +02:00
Austin Lund
f9921a6774
Refactor row_sum() and column_sum() to cover more cases.
...
Currently the methods for row_sum and column_sum require Field and
Supersetof<f64>. This means that to perform a row_sum or
column_sum requires the scalar type to have more properties than just
addition. Consequently, row_sum() won't work on integer matricies.
This patch makes the only requirement that the scalar type be an
additive monoid. Doc tests using integers are also added.
2019-06-20 09:18:42 +10:00
Jake Shadle
0384268bd4
HTTPS All The Things ( #608 )
...
* Use https for all links where it is valid
* Fix random links to external sites
2019-06-11 20:56:50 +02:00
Christian Authmann
589aebbf85
Add #[must_use] to all functions with a _mut variant ( #598 )
2019-06-05 23:04:04 +02:00
Mara Bos
e6265da980
Implement Default for MatrixMN.
2019-04-16 10:11:27 +02:00
Jack Wrenn
05eb9ac2ba
simplify anti-aliasing assertion
2019-04-16 09:14:46 +02:00
Jack Wrenn
306f096c64
prevent constructing MatrixSliceMutMN
for which disjoint indices may alias the same linear index
...
Fixes #486 .
2019-04-16 09:14:46 +02:00
Stefan Mesken
ff9027f473
removed depedency on Vec
2019-04-08 23:44:49 +02:00
Stefan Mesken
cb459d4493
addressed Trevis CI error
2019-04-08 23:44:49 +02:00
Stefan Mesken
5392b936d1
Allow the removal of multiple rows/columns given an array of indices. #530
2019-04-08 23:44:49 +02:00
sebcrozet
ae4afa3d2c
Merge branch 'master-public' into dev
...
# Conflicts:
# Cargo.toml
# src/base/matrix.rs
# src/geometry/quaternion.rs
2019-03-31 16:33:25 +02:00
sebcrozet
18b9f82042
Fix warnings.
2019-03-31 13:32:26 +02:00
sebcrozet
38ef0cbf7b
Merge branch 'dev' into complex
...
# Conflicts:
# src/base/ops.rs
# src/geometry/isometry.rs
# src/geometry/quaternion.rs
# src/geometry/quaternion_construction.rs
# src/geometry/rotation.rs
# src/geometry/similarity.rs
# src/geometry/transform.rs
# src/geometry/translation.rs
# src/geometry/unit_complex.rs
2019-03-31 10:48:59 +02:00
sebcrozet
3b6cd04a80
Adapt BLAS tests to complex numbers.
2019-03-26 18:02:03 +01:00
sebcrozet
4ef4001836
Rename Real to RealField.
2019-03-25 11:21:41 +01:00
sebcrozet
5b28c39fa7
Rename Complex to ComplexField.
2019-03-25 11:19:36 +01:00
Samuel Hurel
b4d800f3e2
Fix matrix slerp function ( #568 )
...
* Fix matrix slerp function
* Adding slerp doc test
2019-03-24 21:44:49 +01:00
sebcrozet
3cbe60523a
2018 edition.
2019-03-23 14:33:47 +01:00
sebcrozet
ce24ea972e
Remove all spurious allocation introduced by complex number support on decompositions.
2019-03-23 14:13:00 +01:00
sebcrozet
921a05d523
Implement some BLAS opertaions involving adjoint.
2019-03-23 11:48:12 +01:00
sebcrozet
1001e8ee0f
Cleanup warnings and rename Schur -> RealSchur
2019-03-23 11:46:56 +01:00
sebcrozet
fd65738738
Fix icamax_full doc-test.
2019-03-19 22:56:32 +01:00
sebcrozet
cb367a645d
Fix mint tests.
2019-03-19 22:53:21 +01:00
sebcrozet
3edef2f006
Decomposition results: return a real vector whenever applicable.
...
This includes singular values, eigenvalues of hermitian matrices, tridiagonalization and bidiagonalization diagonal and off-diagonal elements.
2019-03-19 14:22:59 +01:00
sebcrozet
2f0d95bdbb
Fix most tests.
2019-03-19 12:00:10 +01:00
adamnemecek
1e614db227
Quaternionic division + refactoring ( #563 )
2019-03-18 09:08:42 +01:00
Greizgh
0f09f2a58c
Fix typo in axpy documentation
2019-03-15 15:59:39 +01:00
sebcrozet
010c009cff
Fix Schur decomposition.
2019-03-12 13:15:02 +01:00
est31
db3d08f81a
Fix two compiler warnings
...
Fixes #561
2019-03-12 09:00:23 +01:00
sebcrozet
77f048b6b9
WIP use Complex instead of Real whenever possible on the linalg module.
2019-03-02 19:33:49 +01:00
Jack Wrenn
20e9c6f480
Implement iter::Sum
for DMatrix
( #552 )
...
Fixes #514 .
2019-02-23 15:02:27 +01:00
sebcrozet
7c91f2eeb5
Use Complex instead of Real whenever possible on the base/ module.
2019-02-23 11:24:07 +01:00
Sébastien Crozet
c97dfaf381
Add renormalization and rotation extraction from general 2D and 3D matrices. ( #549 )
...
* Add From impls to convert between UnitQuaterion/UnitComplex and Rotation2/3
* Add rotation extraction from a Matrix2 or Matrix3.
* Add fast Taylor renormalization for Unit.
Fix 376.
* Add renormalization for Rotation3.
Renormalization for Rotation2 requires Complex to implement VectorSpace which will be fixed only on alga v0.9
* Update Changelog.
2019-02-18 22:41:46 +01:00
adamnemecek
975d72f070
Replace explicit types with Self where possible.
2019-02-16 22:29:41 +01:00
Sébastien Crozet
cc7bab9755
Merge branch 'master' into as_ptr
2019-02-03 16:55:54 +01:00
sebcrozet
08f31837a8
Update to alga 0.8.
2019-02-03 15:52:15 +01:00
sebcrozet
7be7fc8776
Fix compilation with no-std.
2019-02-03 15:16:50 +01:00
sebcrozet
fc24db8ff3
Merge branch 'master-public' into sparse
...
# Conflicts:
# Cargo.toml
# examples/matrix_construction.rs
# nalgebra-glm/src/constructors.rs
# nalgebra-glm/src/ext/matrix_clip_space.rs
# nalgebra-glm/src/ext/matrix_transform.rs
# nalgebra-glm/src/ext/mod.rs
# nalgebra-glm/src/ext/quaternion_common.rs
# nalgebra-glm/src/gtx/quaternion.rs
# nalgebra-glm/src/gtx/rotate_vector.rs
# nalgebra-glm/src/lib.rs
# nalgebra-glm/src/traits.rs
# nalgebra-lapack/src/cholesky.rs
# nalgebra-lapack/src/eigen.rs
# nalgebra-lapack/src/hessenberg.rs
# nalgebra-lapack/src/lu.rs
# nalgebra-lapack/src/qr.rs
# nalgebra-lapack/src/schur.rs
# nalgebra-lapack/src/svd.rs
# nalgebra-lapack/src/symmetric_eigen.rs
# rustfmt.toml
# src/base/array_storage.rs
# src/base/blas.rs
# src/base/cg.rs
# src/base/default_allocator.rs
# src/base/edition.rs
# src/base/iter.rs
# src/base/matrix.rs
# src/base/swizzle.rs
# src/base/vec_storage.rs
# src/geometry/mod.rs
# src/geometry/point_construction.rs
# src/geometry/quaternion.rs
# src/geometry/similarity.rs
# src/geometry/translation.rs
# src/geometry/unit_complex_construction.rs
# src/linalg/bidiagonal.rs
# src/linalg/cholesky.rs
# src/linalg/full_piv_lu.rs
# src/linalg/hessenberg.rs
# src/linalg/lu.rs
# src/linalg/permutation_sequence.rs
# src/linalg/qr.rs
# src/linalg/schur.rs
# src/linalg/svd.rs
# src/linalg/symmetric_eigen.rs
# src/linalg/symmetric_tridiagonal.rs
# tests/geometry/point.rs
# tests/geometry/quaternion.rs
# tests/lib.rs
# tests/linalg/eigen.rs
# tests/linalg/svd.rs
2019-02-03 12:53:41 +01:00
sebcrozet
f52bd4be3d
Rename VecStorage::data/data_mut to ::as_vec/as_vec_mut
2019-02-03 11:48:42 +01:00
sebcrozet
664658760a
Remove the Deref implementation for MatrixRef.
...
Fix #380 .
2019-02-03 11:41:14 +01:00
sebcrozet
e225297147
Add doc-tests for apply_norm and apply_metric_distance.
2019-02-03 11:29:10 +01:00
sebcrozet
48e9bbc065
Add tests for row and column iterators.
2019-02-03 11:17:23 +01:00
sebcrozet
bafd74da70
Fix doc-tests for variance.
2019-02-03 11:06:06 +01:00
sebcrozet
381fdb642c
Remove useless extern crate in doc-tests.
2019-02-03 11:01:11 +01:00
sebcrozet
dcae274d2e
Fix rebase fallback + add missing docs.
2019-02-03 08:33:07 +01:00
sebcrozet
414fe8afda
Pass references to zip_apply and zip_zip_apply.
2019-02-03 08:08:03 +01:00
sebcrozet
da8dc6c4bd
Use IntoIterator for select_rows and select_columns argument.
2019-02-03 08:08:03 +01:00
sebcrozet
d1391592a0
Add zip_apply and zip_zip_apply.
2019-02-03 08:08:03 +01:00
sebcrozet
904000ce27
Add argmin and argmax.
2019-02-03 08:08:03 +01:00
sebcrozet
0d2c1be8da
Add row and column iterators.
2019-02-03 08:08:03 +01:00
sebcrozet
bba1f48e81
Add select_rows and select_columns.
2019-02-03 08:06:24 +01:00
sebcrozet
01d1f9d24b
Simplify the construction of DVector.
...
Fix #377 .
2019-02-03 08:06:24 +01:00
sebcrozet
660b868603
Add more general norms and metrics.
...
Fix #258 .
2019-02-03 08:06:24 +01:00
sebcrozet
cc2a70664d
Add statistics functions: sum, variance, mean.
2019-02-03 08:06:24 +01:00
Sébastien Crozet
570611a59b
Merge pull request #524 from shivshank/master
...
Add `push` method to Vector
2019-02-03 07:52:03 +01:00
Sébastien Crozet
9167965252
Merge pull request #525 from jswrenn/fix-serde-deserialization-panic
...
Fix out-of-bounds panic during deserialization; produce error instead
2019-02-03 07:31:03 +01:00
Sébastien Crozet
77a317234c
Merge pull request #533 from ybyygu/master
...
fix doc strings for `map_with_location` and `lower_triangle`
2019-02-03 07:29:49 +01:00
Wenping Guo
b42339ec94
fix doc string of lower_triangle
method
2019-01-30 15:42:28 +08:00
Wenping Guo
bb3f3ac2ee
fix doc for map_with_location
method
2019-01-30 09:33:45 +08:00
sebcrozet
a7ab61f974
Add horizontal and vertical resizing for dynamic matrices and vectors.
2019-01-29 12:03:48 +01:00
sebcrozet
9fbdedb942
Implement ContiguousStorage for some matrix slices.
2019-01-29 12:02:05 +01:00
Gedl
59b0709fcf
Retain new_observer_frame as a deprecated wrapper function
2019-01-17 10:17:00 +01:00
Gedl
3fdcf5329d
Rename ::new_observer_frame to ::face_towards
2019-01-16 22:41:25 +01:00
Jack Wrenn
6426a7cb6f
Fix out-of-bounds panic during deserialization; produce error instead.
...
Fixes #522
2019-01-16 11:23:20 -05:00
shivshank
85a943b7ef
Rewrite to_homogenous for vectors to use push
2019-01-09 21:48:03 -05:00
shivshank
3055c289c0
Add push
method to Vector
2019-01-09 21:38:58 -05:00
sebcrozet
c9351cb818
Fix merge fallout.
2018-12-29 14:57:26 +01:00
Jack Wrenn
5a9a1eb645
typofix: indicies -> indices
2018-12-29 13:41:56 +01:00
Jack Wrenn
4ab8a290c7
groundwork for indexing with typenums
2018-12-29 13:41:56 +01:00
Jack Wrenn
939915131d
MutMatrixIndex -> MatrixIndexMut
2018-12-29 13:41:56 +01:00
Jack Wrenn
57123ed6aa
Overloaded Indexing
2018-12-29 13:41:56 +01:00
Jack Wrenn
d3510b8ff6
typofix: DimNameNimimum
-> DimNameMinimum
2018-12-29 13:41:23 +01:00
Jack Wrenn
53632cd1b4
Implement Hash
for all Matrix<N, R, C>
where N: Hash
.
...
Implements #508 .
2018-12-29 11:29:13 +01:00
sebcrozet
cae2be5cad
Add .min and .max.
2018-12-22 18:03:32 +01:00
Jack Wrenn
0d47a8e16b
Rename Perspective3::unwrap
to Perspective3::into_inner
and deprecate Perspective3::unwrap
...
See #460
2018-12-16 12:58:20 +01:00
Jack Wrenn
9600c45dd4
Rename Orthographic3::unwrap
to Orthographic3::into_inner
and deprecate Orthographic3::unwrap
...
See #460
2018-12-16 12:58:20 +01:00
Jack Wrenn
0ab137bfcf
Rename Unit::unwrap
to Unit::into_inner
and deprecate Unit::unwrap
...
See #460
2018-12-16 12:58:20 +01:00
Jack Wrenn
0f66403cbb
Rename MatrixVec
to VecStorage
.
...
See #470 .
2018-12-06 20:51:29 +01:00
Jack Wrenn
b83c3b857b
Rename MatrixArray
to ArrayStorage
.
...
See #470 .
2018-12-06 20:51:29 +01:00
Jack Wrenn
72d89c75ae
Group swizzle methods by dimensional requirement.
...
This is semantically equivalent, but improves the rendered documentation.
2018-11-24 08:03:54 +01:00
sebcrozet
f972d1dd7e
Small dimension check fix for swizzling.
2018-11-23 07:01:35 +01:00
Jack Wrenn
accdd51faf
Implement Into<Vec<N>>
for MatrixVec<N, R, C>
2018-11-23 07:01:15 +01:00
Sébastien Crozet
bc9c74cbb6
RFC: Remove redundant Dim
trait
...
Co-Authored-By: grtlr <grtlr@users.noreply.github.com>
2018-11-20 17:47:29 +01:00
Jochen Görtler
72f61918f4
RFC: Fix type annotations
2018-11-20 17:47:29 +01:00
Jochen Görtler
3ac5efeac1
WIP: to_homogeneous for MatrixN
2018-11-20 17:47:29 +01:00
Jim Turner
267d9760bd
Add as_ptr and as_mut_ptr methods
...
This is useful for moving around a matrix/slice in unsafe code and for
converting slices to other types (e.g. `ndarray::ArrayView`).
2018-11-19 16:53:46 -05:00
Jack Wrenn
c36416b9c0
Add ShapeConstraint
for Extend<Vector<_,_,_>>
implementations.
2018-11-18 06:36:04 +01:00
Jack Wrenn
0ed67d0470
Implement Extend<Vector<_,_,_>>
for Matrix
.
...
Extend a `Matrix` with columns drawn from an iterator of `Vector`s.
2018-11-18 06:36:04 +01:00
Jack Wrenn
0f29a3ae0a
Simplify documentation examples for Extend
implementations.
2018-11-18 06:36:04 +01:00
Jack Wrenn
f711c107ca
Implements Extend
for Matrix<N, Dynamic, U1>
.
...
Extends a `Vector` with new rows populated from an iterator.
Inspired by https://github.com/rustsim/nalgebra/issues/446#issuecomment-437931790
2018-11-18 06:36:04 +01:00
Jack Wrenn
c3dd709c0a
Implements Extend
for Matrix<N, Dim, Dynamic>
.
...
Extends a matrix with new columns populated from an iterator.
2018-11-18 06:36:04 +01:00
Jack Wrenn
9e763bbcff
doc tests for from_vec_generic
and from_vec
2018-11-08 06:42:55 +01:00
Jack Wrenn
d6fb07dad2
Introduce from_vec
, to complement from_vec_generic
2018-11-08 06:42:55 +01:00
Jack Wrenn
68bdb427cf
Rename: from_vec
-> from_vec_generic
2018-11-08 06:42:55 +01:00
Jack Wrenn
ff4e44a8ed
Introduces a from_vec
constructor for MatrixMN
.
...
Addresses #378 .
The implementation of `from_vec` simply wraps a call to
`from_iterator_generic`. Because the standard library's implementation
of `into_iter` is specialized for the `.into_iter().collect<Vec<_>>()`
case (see https://github.com/rust-lang/rust/issues/46084#issuecomment-345524508 ),
this is equivalent to re-using the original Vec as storage.
2018-11-08 06:42:55 +01:00
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
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
bfab204a24
Add lerp for vectors.
...
Fix #453
2018-10-27 16:06:45 +02:00
sebcrozet
14ad10a7e0
Add rustfmt.toml and run it.
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
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
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
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
Benjamin Saunders
2f03857017
Introduce Unit::from_ref_unchecked
2018-09-25 05:35:20 +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
23bde7dfd0
Reduce requiremens from Real to Ring on the cg module.
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
99b54465c7
Add a copy_from_slice method.
...
Fix #381 .
2018-09-13 08:37:20 +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
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
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
Hoàng Xuân Phú
4b3a157513
Fix mismatching description for is_empty
2018-05-29 07:55: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