| 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 |
Data.Array.Accelerate.Linear.Quaternion
Contents
Description
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
Constructors
| Quaternion !a !(V3 a) |
Instances
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 # | |