linear-1.11: Linear Algebra

Portabilitynon-portable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellTrustworthy

Linear.Quaternion

Description

Quaternions

Synopsis

Documentation

data Quaternion a Source

Quaternions

Constructors

Quaternion !a !(V3 a) 

Instances

Monad Quaternion 
Functor Quaternion 
Typeable1 Quaternion 
MonadFix Quaternion 
Applicative Quaternion 
Foldable Quaternion 
Traversable Quaternion 
Generic1 Quaternion 
Distributive Quaternion 
Representable Quaternion 
Apply Quaternion 
Bind Quaternion 
MonadZip Quaternion 
Additive Quaternion 
Metric Quaternion 
Hamiltonian Quaternion 
Complicated Quaternion 
Trace Quaternion 
Affine Quaternion 
Unbox a => Vector Vector (Quaternion a) 
Unbox a => MVector MVector (Quaternion a) 
(Num r, TrivialConjugate r) => Coalgebra r (E Quaternion) 
(Num r, TrivialConjugate r) => Algebra r (E Quaternion) 
Eq a => Eq (Quaternion a) 
RealFloat a => Floating (Quaternion a) 
RealFloat a => Fractional (Quaternion a) 
Data a => Data (Quaternion a) 
RealFloat a => Num (Quaternion a) 
Ord a => Ord (Quaternion a) 
Read a => Read (Quaternion a) 
Show a => Show (Quaternion a) 
Ix a => Ix (Quaternion a) 
Generic (Quaternion a) 
Hashable a => Hashable (Quaternion a) 
Storable a => Storable (Quaternion a) 
Unbox a => Unbox (Quaternion a) 
Ixed (Quaternion a) 
(RealFloat a, Epsilon a) => Epsilon (Quaternion a) 
(Conjugate a, RealFloat a) => Conjugate (Quaternion a) 
FunctorWithIndex (E Quaternion) Quaternion 
FoldableWithIndex (E Quaternion) Quaternion 
TraversableWithIndex (E Quaternion) Quaternion 
Each (Quaternion a) (Quaternion b) a b 

class Complicated t whereSource

A vector space that includes the basis elements _e and _i

Methods

_e, _i :: Lens' (t a) aSource

Instances

class Complicated t => Hamiltonian t whereSource

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

Methods

_j, _k :: Lens' (t a) aSource

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

slerp :: RealFloat a => Quaternion a -> Quaternion a -> a -> Quaternion aSource

Spherical linear interpolation between two quaternions.

asinq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

asin with a specified branch cut.

acosq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

acos with a specified branch cut.

atanq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

atan with a specified branch cut.

asinhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

asinh with a specified branch cut.

acoshq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

acosh with a specified branch cut.

atanhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion aSource

atanh with a specified branch cut.

absi :: Floating a => Quaternion a -> aSource

norm of the imaginary component

pow :: RealFloat a => Quaternion a -> a -> Quaternion aSource

raise a Quaternion to a scalar power

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

Apply a rotation to a vector.

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

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