pub fn inv<T, U>(a: U) -> Uwhere
T: Float,
U: QuaternionOps<T>,
Expand description
Calculate the inverse of Quaternion or Pure Quaternion (Vector3).
ยงExamples
// ---- Pure Quaternion (Vector3) ---- //
let v: Vector3<f64> = [1.0, 2.0, 3.0];
// Identity quaternion
let id = mul( v, inv(v) ); // = mul( inv(v), v );
assert!( (id.0 - 1.0).abs() < 1e-12 );
assert!( id.1[0].abs() < 1e-12 );
assert!( id.1[1].abs() < 1e-12 );
assert!( id.1[2].abs() < 1e-12 );
// ---- Quaternion ---- //
let q: Quaternion<f64> = (1.0, [2.0, 3.0, 4.0]);
// Identity quaternion
let id = mul( q, inv(q) ); // = mul( inv(q), q );
assert!( (id.0 - 1.0).abs() < 1e-12 );
assert!( id.1[0].abs() < 1e-12 );
assert!( id.1[1].abs() < 1e-12 );
assert!( id.1[2].abs() < 1e-12 );