linear-1.20.9: 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 :: Lens' (t a) a Source #

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

Instances
 Source # Instance detailsDefined in Linear.Quaternion Methods_e :: Lens' (Complex a) a Source #_i :: Lens' (Complex a) a Source # Source # Instance detailsDefined in Linear.Quaternion Methods_e :: Lens' (Quaternion a) a Source #_i :: Lens' (Quaternion a) a Source #

class Complicated t => Hamiltonian t where Source #

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

Methods

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

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

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

Instances
 Source # Instance detailsDefined in Linear.Quaternion Methods_j :: Lens' (Quaternion a) a Source #_k :: Lens' (Quaternion a) a Source #_ijk :: Lens' (Quaternion a) (V3 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.