linear-1.20.5: Linear Algebra

Linear.Quaternion

Description

Quaternions

Synopsis

# Documentation

data Quaternion a Source #

Quaternions

Constructors

 Quaternion !a !(V3 a)

Instances

class Complicated t where Source #

A vector space that includes the basis elements _e and _i

Methods

_e, _i :: Lens' (t a) a Source #

Instances

 Source # Methods_e :: Functor f => (a -> f a) -> Complex a -> f (Complex a) Source #_i :: Functor f => (a -> f a) -> Complex a -> f (Complex a) Source # Source # Methods_e :: Functor f => (a -> f a) -> Quaternion a -> f (Quaternion a) Source #_i :: Functor f => (a -> f a) -> Quaternion a -> f (Quaternion a) Source #

class Complicated t => Hamiltonian t where Source #

A vector space that includes the basis elements _e, _i, _j and _k

Methods

_j, _k :: Lens' (t a) a Source #

_ijk :: Lens' (t a) (V3 a) Source #

Instances

 Source # Methods_j :: Functor f => (a -> f a) -> Quaternion a -> f (Quaternion a) Source #_k :: Functor f => (a -> f a) -> Quaternion a -> f (Quaternion a) Source #_ijk :: Functor f => (V3 a -> f (V3 a)) -> Quaternion a -> f (Quaternion a) Source #

ee :: Complicated t => E t Source #

ei :: Complicated t => E t Source #

ej :: Hamiltonian t => E t Source #

ek :: Hamiltonian t => E t Source #

slerp :: RealFloat a => Quaternion a -> Quaternion a -> a -> Quaternion a Source #

Spherical linear interpolation between two quaternions.

asinq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

asin with a specified branch cut.

acosq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

acos with a specified branch cut.

atanq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

atan with a specified branch cut.

asinhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

asinh with a specified branch cut.

acoshq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

acosh with a specified branch cut.

atanhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a Source #

atanh with a specified branch cut.

absi :: Floating a => Quaternion a -> a Source #

norm of the imaginary component

pow :: RealFloat a => Quaternion a -> a -> Quaternion a Source #

raise a Quaternion to a scalar power

rotate :: (Conjugate a, RealFloat a) => Quaternion a -> V3 a -> V3 a Source #

Apply a rotation to a vector.

axisAngle :: (Epsilon a, Floating a) => V3 a -> a -> Quaternion a Source #

axisAngle axis theta builds a Quaternion representing a rotation of theta radians about axis.