tpdickso
9948bf7e23
Merge pull request #1349 from CAD97/patch-3
...
Fix `glm::is_normalized` epsilon test
2024-03-20 23:01:15 -04:00
tpdickso
990afe6b26
Merge pull request #1371 from yotamofek/redundant-import
...
Fix redundant import errors in `nalgebra-glm`
2024-03-20 12:11:02 -04:00
Yotam Ofek
cf44429837
Fix redundant import errors in `nalgebra-glm`
...
More fallout from https://github.com/rust-lang/rust/issues/121708
Should make CI green again
2024-03-20 13:12:01 +00:00
tpdickso
8c6f14fcd0
Merge pull request #1287 from mohe2015/triplet-iter-clone
...
Implement `Clone` for `CsrTripletIter` and `CscTripletIter`
2024-02-20 17:51:17 -05:00
tpdickso
ee486792a6
Merge pull request #1357 from Jondolf/glam025
...
Support Glam 0.25 type conversion
2024-02-13 22:25:42 -05:00
Joona Aalto
bbac38b2f5
Support Glam 0.25 type conversion
2024-01-27 21:11:47 +02:00
Moritz Hedtke
86bde5ff1d
Implement `Clone` for `CsrTripletIter` and `CscTripletIter`
2024-01-14 22:37:58 +01:00
Christopher Durham
f578181351
Fix glm::is_normalized epsilon
...
The existing comparison bound of $\epsilon^2$ is improperly scaled for
testing an epsilon of the squared vector magnitude. Let $\epsilon$ be
our specified epsilon and $\delta$ be the permissible delta of the
squared magnitude. Thus, for a nearly-normalized vector, we have
$$\begin{align}
\sqrt{1 + \delta} &= 1 + \epsilon \\
\delta &= (1 + \epsilon)^2 - 1 \\
\delta &= \epsilon^2 + 2\epsilon
\text{ .}\end{align}$$
Since we only care about small epsilon, we can assume
that $\epsilon^2$ is small and just use $\delta = 2\epsilon$. And in
fact, [this is the bound used by GLM][GLM#isNormalized] (MIT license)
... except they're using `length` and not `length2` for some reason.
[GLM#isNormalized]: b06b775c1c/glm/gtx/vector_query.inl (L102)
If we stick an epsilon of `1.0e-6` into the current implementation,
this gives us a computed delta of `1.0e-12`: smaller than the `f32`
machine epsilon, and thus no different than direct float comparison
without epsilon. This also gives an effetive epsilon of `5.0e-13`;
*much* less than the intended `1.0e-6` of intended permitted slack!
By doing a bit more algebra, we can find the effective epsilon is
$\sqrt{\texttt{epsilon}^2 + 1} - 1$. This patch makes the effective
epsilon $\sqrt{2\times\texttt{epsilon} + 1} - 1$ which still isn't
*perfect*, but it's effectively linear in the domain we care about,
only really making a practical difference above an epsilon of 10%.
TL;DR: the existing `is_normalized` considers a vector normalized if
the squared magnitude is within `epsilon*epsilon` of `1`. This is wrong
and it should be testing if it's within `2*epsilon`. This PR fixes it.
For absence of doubt, a comparison epsilon of $\texttt{epsilon}^2$ is
correct when comparing squared magnitude against zero, such as when
testing if a displacement vector is nearly zero.
2024-01-13 00:02:26 -05:00
Ababwa
0b89950fca
Correct less than or equal symbol in doc in vector_relational.rs
...
Less than or equal <=
2024-01-11 23:24:13 -08:00
Benjamin Saunders
7866bcee5c
Remove CUDA support relying on abandoned toolchain
2024-01-11 23:09:17 -08:00
Benjamin De Roeck
a60870daf6
docs: Demonstrate correct function in to_homogeneous example ( #1346 )
2024-01-04 19:21:40 -08:00
Kurt Lawrence
6dce471297
Make OPoint call `T::fmt` to respect formatting modifiers ( #1336 )
2023-12-20 14:42:54 -08:00
Julian Knodt
1e0cb7bc09
Fix Clippy Warnings ( #1300 )
2023-12-16 13:54:38 -08:00
zachs18
a01fa48e33
Forward `std` feature to some deps. ( #1321 )
2023-12-10 19:35:54 -08:00
Bruce Mitchener
c3fe38b318
docs: Fix unbalanced backticks.
2023-12-10 14:04:53 -08:00
Sébastien Crozet
a91e3b0d89
Merge pull request #1315 from yotamofek/owned-view-iter
...
Allow creating matrix iter with an owned view
2023-11-12 23:29:41 +01:00
Sébastien Crozet
83eccc6b8f
Merge pull request #1312 from arscisca/dev-DefaultTrait
...
Implement Default trait for sparse matrix types
2023-11-12 23:27:37 +01:00
Sébastien Crozet
2e99320d01
Merge pull request #1314 from rasmusgo/fix-svd-near-zero
...
Fix bug in SVD related to values near zero
2023-11-12 23:18:59 +01:00
Sébastien Crozet
c5276c90e1
cargo fmt
2023-11-12 23:17:33 +01:00
Sébastien Crozet
06b8d38970
fix no-std builds.
2023-11-12 23:17:17 +01:00
Sébastien Crozet
469390f4b9
Check norm_squared instead of mangnitude.
2023-11-12 23:12:52 +01:00
Sébastien Crozet
f8cd2d497d
Merge pull request #1308 from decathorpe/dev
...
Fix and clarify license in crate metadata and add missing license files
2023-11-12 23:04:32 +01:00
Yotam Ofek
1195eadd1a
Allow creating matrix iter with an owned view
2023-11-12 08:19:29 +00:00
Rasmus Brönnegård
7ea9ecee08
Test for axes with zero magnitude
2023-11-09 01:20:44 +01:00
Rasmus Brönnegård
03c24fb369
Add unit tests for issue 1313
2023-11-09 00:53:42 +01:00
Rasmus Brönnegård
b6e094c82f
Fix spelling in givens.rs
2023-11-09 00:48:13 +01:00
Alessandro Rocco Scisca
0887b875a5
Implement Default trait for sparse matrix types
2023-10-30 17:50:56 +00:00
Fabio Valentini
bad63b6423
Fix and clarify license in crate metadata and add missing license files
2023-10-24 18:33:53 +02:00
Sébastien Crozet
c6ff3eeb7e
Merge pull request #1265 from waywardmonkeys/fix-html-links
...
docs: Use intradoc links rather than HTML.
2023-09-30 18:24:28 +02:00
Sébastien Crozet
804e606c97
Merge pull request #1270 from waywardmonkeys/look-at-lh-is-left-handed
...
doc: Isometry's `look_at_lh` is left-handed.
2023-09-30 18:21:48 +02:00
Sébastien Crozet
d2d2571590
Merge pull request #1273 from waywardmonkeys/blackbox-criterion
...
Use std::hint::black_box consistently.
2023-09-30 18:20:09 +02:00
Sébastien Crozet
2043824058
Merge pull request #1281 from waywardmonkeys/clippy-single_component_path_imports
...
nalgebra-glm: Fix clippy single_component_path_imports.
2023-09-30 18:16:16 +02:00
Sébastien Crozet
1987ca29bb
Merge pull request #1282 from waywardmonkeys/clippy-needless-borrow
...
clippy: Fix needless_borrow warnings.
2023-09-30 18:15:42 +02:00
Sébastien Crozet
5a9d036226
Merge pull request #1283 from waywardmonkeys/dual-quaternion-wrong-self-convention
...
DualQuaternion: Fix to_vector self convention.
2023-09-30 18:13:23 +02:00
Sébastien Crozet
c9008ab859
Merge pull request #1284 from waywardmonkeys/glm-too-many-arguments
...
nalgebra-glm, clippy: Suppress too_many_arguments.
2023-09-30 17:56:16 +02:00
Sébastien Crozet
25749e3b89
Merge pull request #1288 from JulianKnodt/dev
...
Add `try_from_triplets_iter`
2023-09-30 17:55:41 +02:00
Sébastien Crozet
b39bd09eaa
chore: swap test names
2023-09-30 17:55:04 +02:00
Sébastien Crozet
542f6cf437
Merge pull request #1302 from mgeier/doc-norm_squared
...
DOC: Use norm_squared() in its doctest
2023-09-30 17:44:41 +02:00
Matthias Geier
87796ace42
DOC: Use norm_squared() in its doctest
2023-09-30 13:01:11 +02:00
julianknodt
666b0fd2de
Add `try_from_triplets_iter`
...
Calls `try_from_triplets` for now, and is mentioned in the documentation.
2023-08-22 22:19:42 -07:00
Bruce Mitchener
1b1d950f74
nalgebra-glm, clippy: Suppress too_many_arguments.
...
Matrix constructors need more args.
2023-08-19 01:00:01 +07:00
Bruce Mitchener
bfb84e8fc6
DualQuaternion: Fix to_vector self convention.
...
By taking a ref, we can avoid an extra copy on the caller side.
2023-08-19 00:52:59 +07:00
Bruce Mitchener
1d9a4bf6ec
clippy: Fix needless_borrow warnings.
2023-08-19 00:36:24 +07:00
Bruce Mitchener
8609167053
nalgebra-glm: Fix clippy single_component_path_imports.
...
These imports are redundant and not needed.
2023-08-19 00:19:42 +07:00
Andreas Borgen Longva
f404bcbd6d
Merge pull request #1279 from waywardmonkeys/clippy-less-lazy
...
clippy: Don't need lazy eval for len calls.
2023-08-15 11:01:13 +02:00
Andreas Borgen Longva
1e40308118
Merge pull request #1278 from waywardmonkeys/clippy-needless-return
...
clippy: Fix needless_return warnings.
2023-08-15 11:00:24 +02:00
Bruce Mitchener
cb2ed212ed
clippy: Don't need lazy eval for len calls.
2023-08-15 14:46:35 +07:00
Bruce Mitchener
76866ad878
clippy: Fix needless_return warnings.
2023-08-15 14:34:34 +07:00
Andreas Borgen Longva
6ac9d8995c
Merge pull request #1276 from waywardmonkeys/fix-rkyv-feature-doc-warnings
...
docs: Fix 2 warnings when building with rkyv.
2023-08-15 09:19:07 +02:00
Andreas Borgen Longva
02260161b1
Merge pull request #1277 from waywardmonkeys/unused-split
...
`split_at` is only used by Rayon code.
2023-08-15 09:18:54 +02:00