Copyright | 2014 Edward Kmett Charles Durham [2015..2018] Trevor L. McDonell |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Quaternions
- data Quaternion a :: * -> * = Quaternion !a !(V3 a)
- slerp :: RealFloat a => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp a -> Exp (Quaternion a)
- asinq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- acosq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- atanq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- asinhq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- acoshq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- atanhq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a)
- absi :: Floating a => Exp (Quaternion a) -> Exp a
- pow :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp a -> Exp (Quaternion a)
- rotate :: forall a. (Conjugate (Exp a), RealFloat a) => Exp (Quaternion a) -> Exp (V3 a) -> Exp (V3 a)
- axisAngle :: (Epsilon a, Floating a) => Exp (V3 a) -> Exp a -> Exp (Quaternion a)
Documentation
data Quaternion a :: * -> * #
Quaternions
Quaternion !a !(V3 a) |
slerp :: RealFloat a => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp a -> Exp (Quaternion a) Source #
Spherical linear interpolation between two quaternions
asinq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
asin
with a specified branch cut
acosq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
acos
with a specified branch cut
atanq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
atan
with a specified branch cut
asinhq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
asinh
with a specified branch cut
acoshq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
acosh
with a specified branch cut
atanhq :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #
atanh
with a specified branch cut
pow :: (RealFloat a, Elt (Complex a)) => Exp (Quaternion a) -> Exp a -> Exp (Quaternion a) Source #
raise a Quaternion
to a scalar power
rotate :: forall a. (Conjugate (Exp a), RealFloat a) => Exp (Quaternion a) -> Exp (V3 a) -> Exp (V3 a) Source #
Apply a rotation to a vector
axisAngle :: (Epsilon a, Floating a) => Exp (V3 a) -> Exp a -> Exp (Quaternion a) Source #
builds a axisAngle
axis thetaQuaternion
representing a rotation of
theta
radians about axis
.
Orphan instances
Functor Quaternion Source # | |
Additive Quaternion Source # | |
Metric Quaternion Source # | |
cst a => IsProduct cst (Quaternion a) Source # | |
(Lift Exp a, Elt (Plain a)) => Lift Exp (Quaternion a) Source # | |
Elt a => Unlift Exp (Quaternion (Exp a)) Source # | |
(RealFloat a, Elt (Complex a)) => Floating (Exp (Quaternion a)) Source # | |
RealFloat a => Fractional (Exp (Quaternion a)) Source # | |
RealFloat a => Num (Exp (Quaternion a)) Source # | |
Ord a => Ord (Quaternion a) Source # | |
Eq a => Eq (Quaternion a) Source # | |
Elt a => Elt (Quaternion a) Source # | |
(RealFloat a, Conjugate (Exp a)) => Conjugate (Exp (Quaternion a)) Source # | |
(RealFloat a, Epsilon a) => Epsilon (Quaternion a) Source # | |
(Elt a, Elt b) => Each (Exp (Quaternion a)) (Exp (Quaternion b)) (Exp a) (Exp b) Source # | |