pub fn nlerp(a: Quaternion<T>, b: Quaternion<T>, t: T) -> Quaternion<T> {
        if Quaternion::dot(a, b) < T::ZERO {
            (a*(T::ONE - t) - b*t).normalize()
        } else {
            (a*(T::ONE - t) + b*t).normalize()
        }
    }
/// Interpolates linearly between the two given quaternions. This works well as long as the
/// quaternions are not to different. `t` should be in the range `0..1`.
///
/// nlerp stands for normalized linear interpolation.
Interpolates linearly between the two given quaternions. This works well as long as the
quaternions are not to different. `t` should be in the range `0..1`.

nlerp stands for normalized linear interpolation.
Interpolates linearly between the two given quaternions . This works well as long as the quaternions are not to different . ` t ` should be in the range ` 0 .. 1 ` . nlerp stands for normalized linear interpolation .
pub fn nlerp(a: Quaternion<T>, b: Quaternion<T>, t: T) -> Quaternion<T> {
        if Quaternion::dot(a, b) < T::ZERO {
            (a*(T::ONE - t) - b*t).normalize()
        } else {
            (a*(T::ONE - t) + b*t).normalize()
        }
    }
pub fn nlerp ( a : Quaternion < T > , b : Quaternion < T > , t : T ) -> Quaternion < T > { if Quaternion :: dot ( a , b ) < T :: ZERO { ( a * ( T :: ONE - t ) - b * t ) . normalize ( ) } else { ( a * ( T :: ONE - t ) + b * t ) . normalize ( ) } }
Interpolates linearly between the two given quaternions.
Interpolates linearly between the two given quaternions .
a
Quaternion<T>
b
Quaternion<T>
t
T
a
Quaternion<T>
b
Quaternion<T>
t
T