pub fn pow<T>(q: Quaternion<T>, t: T) -> Quaternion<T>where
T: Float,
Expand description
Power function of Quaternion.
ยงExamples
let q: Quaternion<f64> = (1.0, [2.0, 3.0, 4.0]);
let q_q = mul(q, q);
let q_pow_2 = pow(q, 2.0);
assert!( (q_q.0 - q_pow_2.0).abs() < 1e-12 );
assert!( (q_q.1[0] - q_pow_2.1[0]).abs() < 1e-12 );
assert!( (q_q.1[1] - q_pow_2.1[1]).abs() < 1e-12 );
assert!( (q_q.1[2] - q_pow_2.1[2]).abs() < 1e-12 );
let q_sqrt = sqrt(q);
let q_pow_0p5 = pow(q, 0.5);
assert!( (q_sqrt.0 - q_pow_0p5.0).abs() < 1e-12 );
assert!( (q_sqrt.1[0] - q_pow_0p5.1[0]).abs() < 1e-12 );
assert!( (q_sqrt.1[1] - q_pow_0p5.1[1]).abs() < 1e-12 );
assert!( (q_sqrt.1[2] - q_pow_0p5.1[2]).abs() < 1e-12 );
let q_inv = inv(q);
let q_pow_m1 = pow(q, -1.0);
assert!( (q_inv.0 - q_pow_m1.0).abs() < 1e-12 );
assert!( (q_inv.1[0] - q_pow_m1.1[0]).abs() < 1e-12 );
assert!( (q_inv.1[1] - q_pow_m1.1[1]).abs() < 1e-12 );
assert!( (q_inv.1[2] - q_pow_m1.1[2]).abs() < 1e-12 );