Comments (1)
After investigating more:
#[test]
fn quaternion_3() {
let p = UnitQuaternion::from_scaled_axis(Vector3::new(0., 0., 1.));
let q = p.into_inner();
dbg!(q.ln());
dbg!(p.ln());
assert!((q.ln().exp() - q).norm() < 1e-9); // OK - Quaternion<f64>
assert!((p.ln().exp() - q).norm() < 1e-9); // fails - Unit<Quaternion<f64>>
}
outputs
[src/main.rs:559:9] q.ln() = [
0.0,
0.0,
0.4999999999999999,
0.0,
]
[src/main.rs:560:9] p.ln() = [
0.0,
0.0,
1.0,
0.0,
]
Seems like UnitQuaternion implemetation expects ln to return scaled_axis instead of returning half of it, contrary to correct statement in the doccomment of the function itself (UnitQuaternion::ln): "The vector part of the return value corresponds to the axis-angle representation (divided by 2.0) of this unit quaternion".
from nalgebra.
Related Issues (20)
- Export crates used in public APIs
- unit quaternions and orthonormal matrices are only closed under successive multiplications in theory HOT 1
- Memory leak in generic_resize/reallocate_copy
- Inverting a 4x4 matrix with `try_inverse_mut` doesn't leave `self` unchanged if the inversion fails.
- Numerically vulnerable axis calculation in Rotation3
- How to construct a symmetric matrix in nalgebra? HOT 3
- `from_iter` implementation may run indefinitely HOT 8
- Request: Allow the multiplication of matrices of matrices HOT 1
- Owned MatrixView Lifetime issues HOT 2
- GAT in Allocator Trait HOT 3
- Matrix should have `sub_scalar` and `sub_scalar_mut` methods. HOT 3
- Update to syn 2.0
- Proposal: Add helper methods `is_hermitian` and `is_unitary` for the `Matrix` struct HOT 3
- Alias 'RowDVectorView<>' is missing for the result of DMatrix<T>.row() HOT 1
- Add `map_to` just like `add_to`, and `map_assign` just like `add_assign` HOT 3
- `add_to` others `*_to` methods should be a trait and return the destination reference HOT 2
- unhandled integer overflow in matrix view construction HOT 1
- Concept for reducing the verbosity of generics
- Update user guide to include matrix, stack macros
- New stack macro implementation triggers clippy::toplevel_ref_arg warning HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nalgebra.