Joshua Smith
b02e4ec2a9
fixed cargo fmt error
2022-03-26 17:32:12 -05:00
Sébastien Crozet
6a553f1ee2
Merge pull request #1098 from dimforge/explicit-const-dims
...
Simplify the type definitions of Const aliases, to help rust-analyzer
2022-03-24 10:00:36 +01:00
Sébastien Crozet
77cf2c935f
Merge pull request #1096 from sterlingjensen/cleanupdoc
...
Cleanup examples and doc links
2022-03-24 10:00:24 +01:00
sterlingjensen
44b700ecdf
run `cargo fmt`
2022-03-23 22:08:20 -05:00
Sébastien Crozet
aa37f28dda
Simplify the type definitions of Const aliases, to help rust-analyzer
2022-03-23 22:55:16 +01:00
sterlingjensen
724117e5ad
Cleanup examples and doc links
...
Close example code fences and normalize containing head line in touched files.
Remove stale reference to `slice_assume_init` (commit 8c6ebf27
), fix long dead internal links in deprecation notices.
2022-03-22 12:03:18 -05:00
Joshua Smith
27a349d282
fix for `UnitComplex::slerp()` #1093
2022-03-21 16:08:53 -05:00
Sébastien Crozet
d7117e228a
Use cust_core instead of cust
2022-03-16 18:07:29 +01:00
YuhanLiin
1acd48f6f1
Address review comments
2022-03-09 21:04:43 -05:00
YuhanLiin
325618ba22
Fix SVD instability bug
2022-03-09 02:13:12 -05:00
Ben Kimock
698e130c3b
Remove abomonation support
...
Abomonation has numerous soundness problems which have been
well-documented in its issue tracker for over 2 years. Some of them
could be fixed, but some are fundamental to its design. If a user wants
super-fast ser/de, they should use rkyv.
2022-02-05 17:15:08 -05:00
Sébastien Crozet
87a6f4965b
Add support for conversion with glam 0.19 and 0.20
2022-01-09 13:43:45 +01:00
Sébastien Crozet
c0f8530d5e
Merge pull request #1055 from dimforge/fix-pow
...
Fix Matrix::pow and make it work with integer matrices
2021-12-31 09:57:56 +01:00
Sébastien Crozet
99ac8c4032
Merge pull request #1050 from metric-space/polar-decomposition-take-2
...
Take-2 of polar-decomposition
2021-12-31 09:57:08 +01:00
Sébastien Crozet
d806669cc7
Fix Matrix::pow and make it work only with positive exponents
2021-12-30 23:03:43 +01:00
Sébastien Crozet
cc10b67dd1
Add Matrix::try_polar that returns Option and make Matrix::polar not return Option
2021-12-30 22:15:04 +01:00
Sébastien Crozet
b62b65d1b6
Merge pull request #1048 from haibane-tenshi/relax-matrix-select-rows-cols
...
Relax T: Zero bound on Matrix::select_rows() and Matrix::select_columns()
2021-12-30 21:56:55 +01:00
Sébastien Crozet
a6007de409
Add "Triangular matrix extraction" bullet to Matrix documentation
2021-12-30 21:55:29 +01:00
Sébastien Crozet
2844c55de2
Merge pull request #1053 from rokonio/patch-1
...
Fix a typo in a comment
2021-12-30 21:46:47 +01:00
Rokonio
05320147b1
Fix a typo in a comment
2021-12-29 18:46:01 +01:00
metric-space
dbaefed8d1
Fix doc typos
2021-12-26 21:05:42 -05:00
metric-space
ac94fbe831
Add polar decomposition method to main matrix decomposition interface
...
Add one more test for decomposition of polar decomposition of rectangular matrix
2021-12-26 21:01:05 -05:00
Leon
20a86d6613
doc fix: QR -> LU
2021-12-22 19:10:55 +00:00
metric-space
6ac6e7f75e
First compiling commit for take-2 of polar-decomposition:
...
Code inspired by this thread: https://github.com/dimforge/nalgebra/pull/656
Main person behind this is LucasCampos
2021-12-22 00:12:27 -05:00
haibane_tenshi
24bb7bef76
fix(Matrix): relax T: Zero bound on Matrix::select_rows() and Matrix::select_columns()
2021-12-16 18:50:15 +03:00
Sébastien Crozet
e0a1b1bc34
Fix the special-case for 3x3 Real SVD
2021-12-09 11:52:37 +01:00
Sébastien Crozet
9389cf2adc
Merge pull request #1034 from dimforge/specific_svd
...
Add dedicated implementations of SVD for 2x2 and 3x3 real matrices.
2021-12-01 13:55:10 +01:00
Sébastien Crozet
9297cc5754
Implement DeviceCopy for UnitComplex, UnitQuaternion, and Unit<Matrix> instead of using a blanket impl
2021-11-26 18:13:37 +01:00
Sébastien Crozet
49e9ceea30
Add dedicated implementations of SVD for 2x2 and 3x3 real matrices.
2021-11-26 17:45:42 +01:00
Sébastien Crozet
9d897a6b8a
Add support for rust-cuda
2021-11-23 12:03:11 +01:00
Sébastien Crozet
ad3eefe182
Merge remote-tracking branch 'origin/dev' into dev
2021-11-23 11:02:51 +01:00
Sébastien Crozet
f715883f9f
Re-add the conversion from a slice to a static array
2021-11-21 21:47:35 +01:00
Sébastien Crozet
10150ec783
Merge pull request #1016 from tpdickso/fix-dual-quaternion-sclerp
...
Don't panic ScLERPing `UnitDualQuaternion` with equal rotation
2021-11-21 17:57:34 +01:00
Terence
0ecbed512b
cargo fmt
2021-11-20 09:12:45 -05:00
Christopher Gundler
24d29c4de3
Allow sorting SVD according to singular values
2021-11-08 10:27:53 +01:00
Sébastien Crozet
df51de0664
Fix unsound usize::get_unchecked_mut
2021-10-31 14:27:32 +01:00
Sébastien Crozet
20d8e953c5
Merge pull request #1004 from MaxVerevkin/fix-750
...
fix linear indexing of matrix slices
2021-10-31 14:24:10 +01:00
Terence
3df81c7cc9
fix docs
2021-10-28 00:05:50 -04:00
Terence
dfb7b6af22
Don't panic ScLERPing `UnitDualQuaternion` with equal rotation
...
Solves #1013 .
Previously, when screw-linearly interpolating two unit dual quaternions
that had an identical orientation, `try_sclerp` would return `None`, as
the operation would introduce a division-by-zero.
This PR splits out the cases where two unit dual quaternions have an
identical orientation from the cases where they have opposite
orientations. In the case where they have identical orientations, the
operation is well-defined, but the exponential parameterization could
not handle it without introducing NaNs. Therefore, the function detects
this case and simply defaults to linearly interpolating the
translational components and using one of the two inputs' rotation
components.
The case where the inputs have opposite rotations is now detected
separately using the dot product of the real (rotation) parts, which was
already being computed anyway.
Also introduces proptests for these specific scenarios, to avoid any
regression.
2021-10-28 00:02:20 -04:00
Sébastien Crozet
e05bfe48b3
Merge pull request #1012 from Yuri6037/scale
...
Scale
2021-10-25 10:20:07 +02:00
Sébastien Crozet
4be7db36fd
Remove useless `into_owned`.
2021-10-25 09:57:58 +02:00
Yuri Edward
209f77ccaf
Fixed from_superset_unchecked
2021-10-24 22:26:01 +02:00
Yuri Edward
25dba52197
Removed additional into_owned call
2021-10-24 21:58:05 +02:00
Yuri Edward
54b8a5b900
Rollbacked buggy update
2021-10-24 21:55:11 +02:00
Yuri Edward
50f65123b5
Merge branch 'scale' of github.com:Yuri6037/nalgebra into scale
2021-10-24 21:52:45 +02:00
Yuri6037
b8800ccd15
Update src/geometry/scale_conversion.rs
...
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 21:52:35 +02:00
Yuri Edward
9d2639b742
Removed clippy suspicious_arithmetic_impl allow
2021-10-24 21:51:36 +02:00
Yuri Edward
866cabaa28
Merge remote-tracking branch 'origin/scale' into scale
2021-10-24 20:55:35 +02:00
Yuri Edward
6d3978b212
Added Scale *= scalar + reordered ops
2021-10-24 20:55:10 +02:00
Yuri Edward
0aba533556
Added Scale * Vector
2021-10-24 20:45:40 +02:00
Yuri6037
8efa9f76b7
Update src/geometry/scale_coordinates.rs
...
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:41:27 +02:00
Yuri6037
510ffcbb18
Update src/geometry/scale_coordinates.rs
...
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:41:21 +02:00
Yuri Edward
c11e1ffb4d
Fixed missing curly bracket
2021-10-24 20:40:02 +02:00
Yuri6037
ded853757c
Update src/geometry/scale.rs
...
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:31:35 +02:00
Yuri6037
f7eec7317c
Update src/geometry/scale_conversion.rs
...
Removed return.
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:27:54 +02:00
Yuri6037
5b44502632
Update src/geometry/scale.rs
...
Simplified code.
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:27:38 +02:00
Yuri6037
26e36c15ba
Update src/geometry/scale.rs
...
Removed return
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:25:48 +02:00
Yuri6037
6123c86f9e
Update src/geometry/scale.rs
...
Removed return
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:24:16 +02:00
Yuri6037
91b8424a86
Update src/geometry/scale.rs
...
Removed return
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:21:07 +02:00
Yuri6037
de41c42af7
Update src/geometry/scale.rs
...
Simplified code
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2021-10-24 20:20:13 +02:00
Yuri Edward
b91ead7971
Fixed Subset for Matrix
2021-10-21 15:56:07 +02:00
Yuri Edward
4466fb2514
Added point * vector
2021-10-21 15:47:00 +02:00
Yuri Edward
99704a0ea1
Updated all examples related to inversion API
2021-10-21 15:22:18 +02:00
Yuri Edward
82b8ac84a0
Fixed code formatting
2021-10-21 15:10:26 +02:00
Yuri Edward
a64417870b
Changed inverse API to pseudo_inverse, try_inverse, try_inverse_mut, try_inverse_transform_point, inverse_unchecked.
2021-10-21 15:06:25 +02:00
Yuri Edward
1341801c56
Added scale * scalar + Cleanup scale_ops
2021-10-19 16:33:12 +02:00
Yuri Edward
865ac001d3
Re-armed scale_simba
2021-10-19 16:20:25 +02:00
Yuri Edward
94ef916f49
Fixed cargo fmt
2021-10-19 16:18:25 +02:00
Yuri Edward
0e2865085e
Updated doc tests
2021-10-19 16:09:06 +02:00
Yuri Edward
d82b39ca9a
Added to_homogeneous
2021-10-19 16:01:02 +02:00
Yuri Edward
f1f947b924
Added to_homogeneous
2021-10-19 15:55:06 +02:00
Yuri Edward
c249cc76b0
Added inverse, inverse_mut inverse_transform_point and transform_point
2021-10-19 15:02:50 +02:00
Yuri Edward
cf811abb92
Added identity()
2021-10-19 14:47:46 +02:00
Yuri Edward
bfb4aceede
Updated operator overloads + fixed scale_construction
2021-10-19 14:31:20 +02:00
Yuri Edward
9c506b18e1
Renamed all instances of Translation to Scale
2021-10-19 14:21:26 +02:00
Yuri Edward
1252fb00a0
Added scale.rs
2021-10-19 14:05:51 +02:00
Yuri Edward
8c6ad490bc
Initial commit copy all translation_x files into scale_x files
2021-10-19 14:02:07 +02:00
Sébastien Crozet
ec700ab7cf
Fix conflicting Default impl for unit-quaternions.
2021-10-14 11:48:12 +02:00
Sébastien Crozet
7275b5146e
Implement Default for most geometry types
2021-10-14 11:39:22 +02:00
Max Verevkin
bf48e093a9
fix linear indexing of matrix slices
2021-10-06 18:02:02 +03:00
Sébastien Crozet
97a79a994b
Add methods to compute the products of a single matrix components/rows/columns
2021-10-06 10:48:46 +02:00
Sébastien Crozet
2e9c8aef20
Merge pull request #1002 from MaxVerevkin/unsafe-dim
...
make Dim trait unsafe
2021-10-04 09:32:13 +02:00
Max Verevkin
65d3b42ff9
make Dim trait unsafe
2021-10-03 20:26:34 +03:00
Max Verevkin
ba7ededbf9
remove unnecessary `T: Scalar`
2021-09-26 21:07:34 +03:00
Max Verevkin
5cbff59f80
simplify Matrix::is_identity while also improving performance
2021-09-26 19:34:19 +03:00
Sébastien Crozet
7f236d88aa
Merge pull request #991 from MaxVerevkin/fix-ub
...
Fix UB in `Matrix::perp()`
2021-09-26 11:05:44 +02:00
Sébastien Crozet
5d9dbb62ef
Merge pull request #993 from MaxVerevkin/deny-unused-mut
...
deny unused_mut and unused_variables
2021-09-26 10:59:27 +02:00
Max Verevkin
f4a8b4cfa1
deny unused_mut and unused_variables
2021-09-25 22:05:31 +03:00
Max Verevkin
b91eecebcd
Matrix::perp() fix UB
2021-09-25 21:52:09 +03:00
Sébastien Crozet
85202f85f7
Merge pull request #986 from Ralith/concise-debug
...
Concise Debug impls
2021-09-25 17:23:14 +02:00
Sébastien Crozet
dd8b6800f5
Merge pull request #992 from MaxVerevkin/exp-rs
...
exp.rs: factorial(): use precomputed factorial array
2021-09-25 12:32:11 +02:00
Sébastien Crozet
d12ad891f9
Merge pull request #981 from geieredgar/dev
...
Implement conversion traits for glam 0.18
2021-09-25 12:12:25 +02:00
Max Verevkin
ad8250c361
exp.rs: factorial(): use precomputed factorial array
2021-09-21 23:14:42 +03:00
Sébastien Crozet
654eca7f80
Merge pull request #979 from Fuuzetsu/cholesky-lax
...
Allow setting Cholesky field directly; more lax decomposition method
2021-09-17 05:16:39 -07:00
Benjamin Saunders
0541f13b26
Concise Debug impls
...
Replace the verbose derived (or nearly equivalent) Debug impls for
several newtypes with explicit impls that forward to the inner type,
making readable diagnostics logging much easier.
2021-09-12 10:56:25 -07:00
Mateusz Kowalczyk
fc3526b58a
Allow fallback value for Cholesky decomposition
...
This is useful in case where the values are very close to zero or
possibly even slightly negative. This can quite easily happen due to
numerical errors.
A common strategy is to replace these values with a small epsilon value
that keeps the matrix SPD. Some libraries even do this by default (such
as https://github.com/STOR-i/GaussianProcesses.jl/issues/1 ).
We point the user to `LU` decomposition and also make it clearer that
the method is basically a hack. The public method no longer takes an
`Option` which didn't really make sense. A private method is used to not
repeat implementation in `new`.
2021-09-03 09:01:04 +09:00
Mateusz Kowalczyk
a4c2ca941d
Allow constructing Cholesky struct directly
...
This is useful if there the data for the matrix comes from elsewhere,
such as a custom algorithm. One such use-case can be seen
https://github.com/nestordemeure/friedrich/issues/43 where we do special
handling for the try_sqrt or is_zero cases that would normally fail the
decomposition in `Cholesky::new()`.
2021-09-03 09:01:04 +09:00
Edgar Geier
bc21b6f1e6
Add support for conversion with glam 0.18
2021-08-30 18:31:21 +02:00
Sébastien Crozet
319597e137
Merge pull request #974 from cchillen/RotationDocumentation
...
Improve clarity of Rotation doc comments
2021-08-30 10:32:47 +02:00
Sébastien Crozet
90e531337a
Merge pull request #969 from remilauzier/dev
...
Fix some clippy warnings
2021-08-30 10:11:51 +02:00