Copyright | (C) 2012-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Linear.Quaternion
Description
Quaternions
Synopsis
- data Quaternion a = Quaternion !a !(V3 a)
- class Complicated t where
- class Complicated t => Hamiltonian t where
- ee :: Complicated t => E t
- ei :: Complicated t => E t
- ej :: Hamiltonian t => E t
- ek :: Hamiltonian t => E t
- slerp :: RealFloat a => Quaternion a -> Quaternion a -> a -> Quaternion a
- asinq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- acosq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- atanq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- asinhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- acoshq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- atanhq :: RealFloat a => Quaternion a -> Quaternion a -> Quaternion a
- absi :: Floating a => Quaternion a -> a
- pow :: RealFloat a => Quaternion a -> a -> Quaternion a
- rotate :: (Conjugate a, RealFloat a) => Quaternion a -> V3 a -> V3 a
- axisAngle :: (Epsilon a, Floating a) => V3 a -> a -> Quaternion a
Documentation
data Quaternion a Source #
Quaternions
Constructors
Quaternion !a !(V3 a) |
Instances
Representable Quaternion Source # | |
Defined in Linear.Quaternion Associated Types type Rep Quaternion Methods tabulate :: (Rep Quaternion -> a) -> Quaternion a index :: Quaternion a -> Rep Quaternion -> a | |
MonadFix Quaternion Source # | |
Defined in Linear.Quaternion Methods mfix :: (a -> Quaternion a) -> Quaternion a | |
MonadZip Quaternion Source # | |
Defined in Linear.Quaternion Methods mzip :: Quaternion a -> Quaternion b -> Quaternion (a, b) mzipWith :: (a -> b -> c) -> Quaternion a -> Quaternion b -> Quaternion c munzip :: Quaternion (a, b) -> (Quaternion a, Quaternion b) | |
Foldable Quaternion Source # | |
Defined in Linear.Quaternion Methods fold :: Monoid m => Quaternion m -> m foldMap :: Monoid m => (a -> m) -> Quaternion a -> m foldMap' :: Monoid m => (a -> m) -> Quaternion a -> m foldr :: (a -> b -> b) -> b -> Quaternion a -> b foldr' :: (a -> b -> b) -> b -> Quaternion a -> b foldl :: (b -> a -> b) -> b -> Quaternion a -> b foldl' :: (b -> a -> b) -> b -> Quaternion a -> b foldr1 :: (a -> a -> a) -> Quaternion a -> a foldl1 :: (a -> a -> a) -> Quaternion a -> a toList :: Quaternion a -> [a] null :: Quaternion a -> Bool length :: Quaternion a -> Int elem :: Eq a => a -> Quaternion a -> Bool maximum :: Ord a => Quaternion a -> a minimum :: Ord a => Quaternion a -> a sum :: Num a => Quaternion a -> a product :: Num a => Quaternion a -> a | |
Eq1 Quaternion Source # | |
Defined in Linear.Quaternion Methods liftEq :: (a -> b -> Bool) -> Quaternion a -> Quaternion b -> Bool | |
Ord1 Quaternion Source # | |
Defined in Linear.Quaternion Methods liftCompare :: (a -> b -> Ordering) -> Quaternion a -> Quaternion b -> Ordering | |
Read1 Quaternion Source # | |
Defined in Linear.Quaternion Methods liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Quaternion a) liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Quaternion a] liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Quaternion a) liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Quaternion a] | |
Show1 Quaternion Source # | |
Defined in Linear.Quaternion Methods liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Quaternion a -> ShowS liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Quaternion a] -> ShowS | |
Traversable Quaternion Source # | |
Defined in Linear.Quaternion Methods traverse :: Applicative f => (a -> f b) -> Quaternion a -> f (Quaternion b) sequenceA :: Applicative f => Quaternion (f a) -> f (Quaternion a) mapM :: Monad m => (a -> m b) -> Quaternion a -> m (Quaternion b) sequence :: Monad m => Quaternion (m a) -> m (Quaternion a) | |
Applicative Quaternion Source # | |
Defined in Linear.Quaternion Methods pure :: a -> Quaternion a (<*>) :: Quaternion (a -> b) -> Quaternion a -> Quaternion b liftA2 :: (a -> b -> c) -> Quaternion a -> Quaternion b -> Quaternion c (*>) :: Quaternion a -> Quaternion b -> Quaternion b (<*) :: Quaternion a -> Quaternion b -> Quaternion a | |
Functor Quaternion Source # | |
Defined in Linear.Quaternion | |
Monad Quaternion Source # | |
Defined in Linear.Quaternion Methods (>>=) :: Quaternion a -> (a -> Quaternion b) -> Quaternion b (>>) :: Quaternion a -> Quaternion b -> Quaternion b return :: a -> Quaternion a | |
Serial1 Quaternion Source # | |
Defined in Linear.Quaternion Methods serializeWith :: MonadPut m => (a -> m ()) -> Quaternion a -> m () deserializeWith :: MonadGet m => m a -> m (Quaternion a) | |
Distributive Quaternion Source # | |
Defined in Linear.Quaternion Methods distribute :: Functor f => f (Quaternion a) -> Quaternion (f a) collect :: Functor f => (a -> Quaternion b) -> f a -> Quaternion (f b) distributeM :: Monad m => m (Quaternion a) -> Quaternion (m a) collectM :: Monad m => (a -> Quaternion b) -> m a -> Quaternion (m b) | |
Hashable1 Quaternion Source # | |
Defined in Linear.Quaternion Methods liftHashWithSalt :: (Int -> a -> Int) -> Int -> Quaternion a -> Int | |
Affine Quaternion Source # | |
Defined in Linear.Affine Associated Types type Diff Quaternion :: Type -> Type Source # Methods (.-.) :: Num a => Quaternion a -> Quaternion a -> Diff Quaternion a Source # (.+^) :: Num a => Quaternion a -> Diff Quaternion a -> Quaternion a Source # (.-^) :: Num a => Quaternion a -> Diff Quaternion a -> Quaternion a Source # | |
Metric Quaternion Source # | |
Defined in Linear.Quaternion Methods dot :: Num a => Quaternion a -> Quaternion a -> a Source # quadrance :: Num a => Quaternion a -> a Source # qd :: Num a => Quaternion a -> Quaternion a -> a Source # distance :: Floating a => Quaternion a -> Quaternion a -> a Source # norm :: Floating a => Quaternion a -> a Source # signorm :: Floating a => Quaternion a -> Quaternion a Source # | |
Complicated Quaternion Source # | |
Defined in Linear.Quaternion | |
Hamiltonian Quaternion Source # | |
Defined in Linear.Quaternion Methods _j :: Lens' (Quaternion a) a Source # _k :: Lens' (Quaternion a) a Source # _ijk :: Lens' (Quaternion a) (V3 a) Source # | |
Trace Quaternion Source # | |
Defined in Linear.Trace Methods trace :: Num a => Quaternion (Quaternion a) -> a Source # diagonal :: Quaternion (Quaternion a) -> Quaternion a Source # | |
Finite Quaternion Source # | |
Defined in Linear.Quaternion Associated Types type Size Quaternion :: Nat Source # Methods toV :: Quaternion a -> V (Size Quaternion) a Source # fromV :: V (Size Quaternion) a -> Quaternion a Source # | |
R1 Quaternion Source # | |
Defined in Linear.Quaternion Methods _x :: Lens' (Quaternion a) a Source # | |
R2 Quaternion Source # | |
Defined in Linear.Quaternion | |
R3 Quaternion Source # | |
Defined in Linear.Quaternion | |
R4 Quaternion Source # | |
Defined in Linear.Quaternion | |
Additive Quaternion Source # | |
Defined in Linear.Quaternion Methods zero :: Num a => Quaternion a Source # (^+^) :: Num a => Quaternion a -> Quaternion a -> Quaternion a Source # (^-^) :: Num a => Quaternion a -> Quaternion a -> Quaternion a Source # lerp :: Num a => a -> Quaternion a -> Quaternion a -> Quaternion a Source # liftU2 :: (a -> a -> a) -> Quaternion a -> Quaternion a -> Quaternion a Source # liftI2 :: (a -> b -> c) -> Quaternion a -> Quaternion b -> Quaternion c Source # | |
Apply Quaternion Source # | |
Defined in Linear.Quaternion Methods (<.>) :: Quaternion (a -> b) -> Quaternion a -> Quaternion b (.>) :: Quaternion a -> Quaternion b -> Quaternion b (<.) :: Quaternion a -> Quaternion b -> Quaternion a liftF2 :: (a -> b -> c) -> Quaternion a -> Quaternion b -> Quaternion c | |
Bind Quaternion Source # | |
Defined in Linear.Quaternion Methods (>>-) :: Quaternion a -> (a -> Quaternion b) -> Quaternion b join :: Quaternion (Quaternion a) -> Quaternion a | |
Generic1 Quaternion Source # | |
Defined in Linear.Quaternion Associated Types type Rep1 Quaternion :: k -> Type Methods from1 :: forall (a :: k). Quaternion a -> Rep1 Quaternion a to1 :: forall (a :: k). Rep1 Quaternion a -> Quaternion a | |
(Num r, TrivialConjugate r) => Algebra r (E Quaternion) Source # | |
Defined in Linear.Algebra Methods mult :: (E Quaternion -> E Quaternion -> r) -> E Quaternion -> r Source # unital :: r -> E Quaternion -> r Source # | |
(Num r, TrivialConjugate r) => Coalgebra r (E Quaternion) Source # | |
Defined in Linear.Algebra Methods comult :: (E Quaternion -> r) -> E Quaternion -> E Quaternion -> r Source # counital :: (E Quaternion -> r) -> r Source # | |
Lift a => Lift (Quaternion a :: Type) Source # | |
Defined in Linear.Quaternion Methods lift :: Quote m => Quaternion a -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => Quaternion a -> Code m (Quaternion a) | |
Unbox a => Vector Vector (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods basicUnsafeFreeze :: Mutable Vector s (Quaternion a) -> ST s (Vector (Quaternion a)) basicUnsafeThaw :: Vector (Quaternion a) -> ST s (Mutable Vector s (Quaternion a)) basicLength :: Vector (Quaternion a) -> Int basicUnsafeSlice :: Int -> Int -> Vector (Quaternion a) -> Vector (Quaternion a) basicUnsafeIndexM :: Vector (Quaternion a) -> Int -> Box (Quaternion a) basicUnsafeCopy :: Mutable Vector s (Quaternion a) -> Vector (Quaternion a) -> ST s () elemseq :: Vector (Quaternion a) -> Quaternion a -> b -> b | |
Unbox a => MVector MVector (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods basicLength :: MVector s (Quaternion a) -> Int basicUnsafeSlice :: Int -> Int -> MVector s (Quaternion a) -> MVector s (Quaternion a) basicOverlaps :: MVector s (Quaternion a) -> MVector s (Quaternion a) -> Bool basicUnsafeNew :: Int -> ST s (MVector s (Quaternion a)) basicInitialize :: MVector s (Quaternion a) -> ST s () basicUnsafeReplicate :: Int -> Quaternion a -> ST s (MVector s (Quaternion a)) basicUnsafeRead :: MVector s (Quaternion a) -> Int -> ST s (Quaternion a) basicUnsafeWrite :: MVector s (Quaternion a) -> Int -> Quaternion a -> ST s () basicClear :: MVector s (Quaternion a) -> ST s () basicSet :: MVector s (Quaternion a) -> Quaternion a -> ST s () basicUnsafeCopy :: MVector s (Quaternion a) -> MVector s (Quaternion a) -> ST s () basicUnsafeMove :: MVector s (Quaternion a) -> MVector s (Quaternion a) -> ST s () basicUnsafeGrow :: MVector s (Quaternion a) -> Int -> ST s (MVector s (Quaternion a)) | |
Data a => Data (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Quaternion a -> c (Quaternion a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Quaternion a) toConstr :: Quaternion a -> Constr dataTypeOf :: Quaternion a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Quaternion a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Quaternion a)) gmapT :: (forall b. Data b => b -> b) -> Quaternion a -> Quaternion a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Quaternion a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Quaternion a -> r gmapQ :: (forall d. Data d => d -> u) -> Quaternion a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Quaternion a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Quaternion a -> m (Quaternion a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Quaternion a -> m (Quaternion a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Quaternion a -> m (Quaternion a) | |
Storable a => Storable (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods sizeOf :: Quaternion a -> Int alignment :: Quaternion a -> Int peekElemOff :: Ptr (Quaternion a) -> Int -> IO (Quaternion a) pokeElemOff :: Ptr (Quaternion a) -> Int -> Quaternion a -> IO () peekByteOff :: Ptr b -> Int -> IO (Quaternion a) pokeByteOff :: Ptr b -> Int -> Quaternion a -> IO () peek :: Ptr (Quaternion a) -> IO (Quaternion a) poke :: Ptr (Quaternion a) -> Quaternion a -> IO () | |
Monoid a => Monoid (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods mempty :: Quaternion a mappend :: Quaternion a -> Quaternion a -> Quaternion a mconcat :: [Quaternion a] -> Quaternion a | |
Semigroup a => Semigroup (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods (<>) :: Quaternion a -> Quaternion a -> Quaternion a sconcat :: NonEmpty (Quaternion a) -> Quaternion a stimes :: Integral b => b -> Quaternion a -> Quaternion a | |
RealFloat a => Floating (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods pi :: Quaternion a exp :: Quaternion a -> Quaternion a log :: Quaternion a -> Quaternion a sqrt :: Quaternion a -> Quaternion a (**) :: Quaternion a -> Quaternion a -> Quaternion a logBase :: Quaternion a -> Quaternion a -> Quaternion a sin :: Quaternion a -> Quaternion a cos :: Quaternion a -> Quaternion a tan :: Quaternion a -> Quaternion a asin :: Quaternion a -> Quaternion a acos :: Quaternion a -> Quaternion a atan :: Quaternion a -> Quaternion a sinh :: Quaternion a -> Quaternion a cosh :: Quaternion a -> Quaternion a tanh :: Quaternion a -> Quaternion a asinh :: Quaternion a -> Quaternion a acosh :: Quaternion a -> Quaternion a atanh :: Quaternion a -> Quaternion a log1p :: Quaternion a -> Quaternion a expm1 :: Quaternion a -> Quaternion a log1pexp :: Quaternion a -> Quaternion a log1mexp :: Quaternion a -> Quaternion a | |
Generic (Quaternion a) Source # | |
Defined in Linear.Quaternion Associated Types type Rep (Quaternion a) :: Type -> Type | |
Ix a => Ix (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods range :: (Quaternion a, Quaternion a) -> [Quaternion a] index :: (Quaternion a, Quaternion a) -> Quaternion a -> Int unsafeIndex :: (Quaternion a, Quaternion a) -> Quaternion a -> Int inRange :: (Quaternion a, Quaternion a) -> Quaternion a -> Bool rangeSize :: (Quaternion a, Quaternion a) -> Int unsafeRangeSize :: (Quaternion a, Quaternion a) -> Int | |
RealFloat a => Num (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods (+) :: Quaternion a -> Quaternion a -> Quaternion a (-) :: Quaternion a -> Quaternion a -> Quaternion a (*) :: Quaternion a -> Quaternion a -> Quaternion a negate :: Quaternion a -> Quaternion a abs :: Quaternion a -> Quaternion a signum :: Quaternion a -> Quaternion a fromInteger :: Integer -> Quaternion a | |
Read a => Read (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods readsPrec :: Int -> ReadS (Quaternion a) readList :: ReadS [Quaternion a] readPrec :: ReadPrec (Quaternion a) readListPrec :: ReadPrec [Quaternion a] | |
RealFloat a => Fractional (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods (/) :: Quaternion a -> Quaternion a -> Quaternion a recip :: Quaternion a -> Quaternion a fromRational :: Rational -> Quaternion a | |
Show a => Show (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods showsPrec :: Int -> Quaternion a -> ShowS show :: Quaternion a -> String showList :: [Quaternion a] -> ShowS | |
Binary a => Binary (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
Serial a => Serial (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
Serialize a => Serialize (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
NFData a => NFData (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods rnf :: Quaternion a -> () | |
Eq a => Eq (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
Ord a => Ord (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods compare :: Quaternion a -> Quaternion a -> Ordering (<) :: Quaternion a -> Quaternion a -> Bool (<=) :: Quaternion a -> Quaternion a -> Bool (>) :: Quaternion a -> Quaternion a -> Bool (>=) :: Quaternion a -> Quaternion a -> Bool max :: Quaternion a -> Quaternion a -> Quaternion a min :: Quaternion a -> Quaternion a -> Quaternion a | |
Hashable a => Hashable (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
Ixed (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods ix :: Index (Quaternion a) -> Traversal' (Quaternion a) (IxValue (Quaternion a)) | |
(Conjugate a, RealFloat a) => Conjugate (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods conjugate :: Quaternion a -> Quaternion a Source # | |
(RealFloat a, Epsilon a) => Epsilon (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods nearZero :: Quaternion a -> Bool Source # | |
Random a => Random (Quaternion a) Source # | |
Defined in Linear.Quaternion Methods randomR :: RandomGen g => (Quaternion a, Quaternion a) -> g -> (Quaternion a, g) random :: RandomGen g => g -> (Quaternion a, g) randomRs :: RandomGen g => (Quaternion a, Quaternion a) -> g -> [Quaternion a] randoms :: RandomGen g => g -> [Quaternion a] | |
Unbox a => Unbox (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
FoldableWithIndex (E Quaternion) Quaternion Source # | |
Defined in Linear.Quaternion Methods ifoldMap :: Monoid m => (E Quaternion -> a -> m) -> Quaternion a -> m ifoldMap' :: Monoid m => (E Quaternion -> a -> m) -> Quaternion a -> m ifoldr :: (E Quaternion -> a -> b -> b) -> b -> Quaternion a -> b ifoldl :: (E Quaternion -> b -> a -> b) -> b -> Quaternion a -> b ifoldr' :: (E Quaternion -> a -> b -> b) -> b -> Quaternion a -> b ifoldl' :: (E Quaternion -> b -> a -> b) -> b -> Quaternion a -> b | |
FunctorWithIndex (E Quaternion) Quaternion Source # | |
Defined in Linear.Quaternion Methods imap :: (E Quaternion -> a -> b) -> Quaternion a -> Quaternion b | |
TraversableWithIndex (E Quaternion) Quaternion Source # | |
Defined in Linear.Quaternion Methods itraverse :: Applicative f => (E Quaternion -> a -> f b) -> Quaternion a -> f (Quaternion b) | |
Each (Quaternion a) (Quaternion b) a b Source # | |
Defined in Linear.Quaternion Methods each :: Traversal (Quaternion a) (Quaternion b) a b | |
Field1 (Quaternion a) (Quaternion a) a a Source # | |
Defined in Linear.Quaternion Methods _1 :: Lens (Quaternion a) (Quaternion a) a a | |
Field2 (Quaternion a) (Quaternion a) a a Source # | |
Defined in Linear.Quaternion Methods _2 :: Lens (Quaternion a) (Quaternion a) a a | |
Field3 (Quaternion a) (Quaternion a) a a Source # | |
Defined in Linear.Quaternion Methods _3 :: Lens (Quaternion a) (Quaternion a) a a | |
Field4 (Quaternion a) (Quaternion a) a a Source # | |
Defined in Linear.Quaternion Methods _4 :: Lens (Quaternion a) (Quaternion a) a a | |
type Rep Quaternion Source # | |
Defined in Linear.Quaternion | |
type Diff Quaternion Source # | |
Defined in Linear.Affine | |
type Size Quaternion Source # | |
Defined in Linear.Quaternion | |
type Rep1 Quaternion Source # | |
Defined in Linear.Quaternion type Rep1 Quaternion = D1 ('MetaData "Quaternion" "Linear.Quaternion" "linear-1.22-G4Vo2GnxAJbENICJAkz68L" 'False) (C1 ('MetaCons "Quaternion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec1 V3))) | |
data MVector s (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
type Rep (Quaternion a) Source # | |
Defined in Linear.Quaternion type Rep (Quaternion a) = D1 ('MetaData "Quaternion" "Linear.Quaternion" "linear-1.22-G4Vo2GnxAJbENICJAkz68L" 'False) (C1 ('MetaCons "Quaternion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (V3 a)))) | |
type Index (Quaternion a) Source # | |
Defined in Linear.Quaternion | |
type IxValue (Quaternion a) Source # | |
Defined in Linear.Quaternion type IxValue (Quaternion a) = a | |
data Vector (Quaternion a) Source # | |
Defined in Linear.Quaternion |
class Complicated t where Source #
Instances
Complicated Complex Source # | |
Complicated Quaternion Source # | |
Defined in Linear.Quaternion |
class Complicated t => Hamiltonian t where Source #
Instances
Hamiltonian Quaternion Source # | |
Defined 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 #
builds a axisAngle
axis thetaQuaternion
representing a
rotation of theta
radians about axis
.