Function quaternion_core::mul
source · [−]pub fn mul<T, U>(a: U, b: U) -> Quaternion<T> where
T: Float,
U: QuaternionOps<T>, Expand description
Hamilton product (Product of Quaternion or Pure Quaternion)
The product order is ab (!= ba)
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!( (1.0 - id.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!( (1.0 - id.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 );