linear-accelerate-0.7.0.0: Lifting linear vector spaces into Accelerate

Copyright2014 Edward Kmett Charles Durham
[2015..2020] Trevor L. McDonell
LicenseBSD-style (see the file LICENSE)
MaintainerTrevor L. McDonell <trevor.mcdonell@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Array.Accelerate.Linear.Quaternion

Contents

Description

Quaternions

Synopsis

Documentation

data Quaternion a #

Quaternions

Constructors

Quaternion !a !(V3 a) 
Instances
Monad Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

(>>=) :: Quaternion a -> (a -> Quaternion b) -> Quaternion b #

(>>) :: Quaternion a -> Quaternion b -> Quaternion b #

return :: a -> Quaternion a #

fail :: String -> Quaternion a #

Functor Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

fmap :: (a -> b) -> Quaternion a -> Quaternion b #

(<$) :: a -> Quaternion b -> Quaternion a #

MonadFix Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

mfix :: (a -> Quaternion a) -> Quaternion a #

Applicative Quaternion 
Instance details

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 #

Foldable Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

fold :: Monoid m => Quaternion m -> 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 #

Traversable Quaternion 
Instance details

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) #

Functor Quaternion Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

fmap :: (Elt a, Elt b, Elt (Quaternion a), Elt (Quaternion b)) => (Exp a -> Exp b) -> Exp (Quaternion a) -> Exp (Quaternion b) #

(<$) :: (Elt a, Elt b, Elt (Quaternion a), Elt (Quaternion b)) => Exp a -> Exp (Quaternion b) -> Exp (Quaternion a) #

Distributive Quaternion 
Instance details

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) #

Representable Quaternion 
Instance details

Defined in Linear.Quaternion

Associated Types

type Rep Quaternion :: Type #

Methods

tabulate :: (Rep Quaternion -> a) -> Quaternion a #

index :: Quaternion a -> Rep Quaternion -> a #

Eq1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

liftEq :: (a -> b -> Bool) -> Quaternion a -> Quaternion b -> Bool #

Ord1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

liftCompare :: (a -> b -> Ordering) -> Quaternion a -> Quaternion b -> Ordering #

Read1 Quaternion 
Instance details

Defined in Linear.Quaternion

Show1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Quaternion a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Quaternion a] -> ShowS #

MonadZip Quaternion 
Instance details

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) #

Serial1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

serializeWith :: MonadPut m => (a -> m ()) -> Quaternion a -> m () #

deserializeWith :: MonadGet m => m a -> m (Quaternion a) #

Hashable1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> Quaternion a -> Int #

Apply Quaternion 
Instance details

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 #

Trace Quaternion 
Instance details

Defined in Linear.Trace

Complicated Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_e :: Lens' (Quaternion a) a #

_i :: Lens' (Quaternion a) a #

Hamiltonian Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_j :: Lens' (Quaternion a) a #

_k :: Lens' (Quaternion a) a #

_ijk :: Lens' (Quaternion a) (V3 a) #

R4 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_w :: Lens' (Quaternion a) a #

_xyzw :: Lens' (Quaternion a) (V4 a) #

R3 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_z :: Lens' (Quaternion a) a #

_xyz :: Lens' (Quaternion a) (V3 a) #

R2 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_y :: Lens' (Quaternion a) a #

_xy :: Lens' (Quaternion a) (V2 a) #

R1 Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

_x :: Lens' (Quaternion a) a #

Finite Quaternion 
Instance details

Defined in Linear.Quaternion

Associated Types

type Size Quaternion :: Nat #

Methods

toV :: Quaternion a -> V (Size Quaternion) a #

fromV :: V (Size Quaternion) a -> Quaternion a #

Metric Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

dot :: Num a => Quaternion a -> Quaternion a -> a #

quadrance :: Num a => Quaternion a -> a #

qd :: Num a => Quaternion a -> Quaternion a -> a #

distance :: Floating a => Quaternion a -> Quaternion a -> a #

norm :: Floating a => Quaternion a -> a #

signorm :: Floating a => Quaternion a -> Quaternion a #

Additive Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

zero :: Num a => Quaternion a #

(^+^) :: Num a => Quaternion a -> Quaternion a -> Quaternion a #

(^-^) :: Num a => Quaternion a -> Quaternion a -> Quaternion a #

lerp :: Num a => a -> Quaternion a -> Quaternion a -> Quaternion a #

liftU2 :: (a -> a -> a) -> Quaternion a -> Quaternion a -> Quaternion a #

liftI2 :: (a -> b -> c) -> Quaternion a -> Quaternion b -> Quaternion c #

Bind Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

(>>-) :: Quaternion a -> (a -> Quaternion b) -> Quaternion b #

join :: Quaternion (Quaternion a) -> Quaternion a #

Additive Quaternion Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

zero :: (Elt (Quaternion a), Num a) => Exp (Quaternion a) Source #

(^+^) :: (Num a, Box Quaternion a) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

(^-^) :: (Num a, Box Quaternion a) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

lerp :: (Num a, Box Quaternion a) => Exp a -> Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

Metric Quaternion Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Trace Quaternion Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Trace

(Lift Exp a, Elt (Plain a)) => Lift Exp (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Associated Types

type Plain (Quaternion a) :: Type #

Methods

lift :: Quaternion a -> Exp (Plain (Quaternion a)) #

Elt a => Unlift Exp (Quaternion (Exp a)) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

unlift :: Exp (Plain (Quaternion (Exp a))) -> Quaternion (Exp a) #

Unbox a => Vector Vector (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Unbox a => MVector MVector (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Eq a => Eq (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

(==) :: Quaternion a -> Quaternion a -> Bool #

(/=) :: Quaternion a -> Quaternion a -> Bool #

(RealFloat a, Elt (Complex a)) => Floating (Exp (Quaternion a)) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

RealFloat a => Floating (Quaternion a) 
Instance details

Defined in Linear.Quaternion

RealFloat a => Fractional (Exp (Quaternion a)) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

RealFloat a => Fractional (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Data a => Data (Quaternion a) 
Instance details

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 :: (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) #

RealFloat a => Num (Exp (Quaternion a)) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

RealFloat a => Num (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Ord a => Ord (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Read a => Read (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Show a => Show (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Ix a => Ix (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Generic (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Associated Types

type Rep (Quaternion a) :: Type -> Type #

Methods

from :: Quaternion a -> Rep (Quaternion a) x #

to :: Rep (Quaternion a) x -> Quaternion a #

Semigroup a => Semigroup (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Monoid a => Monoid (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Lift a => Lift (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

lift :: Quaternion a -> Q Exp #

Ord a => Ord (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Eq a => Eq (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

(==) :: Exp (Quaternion a) -> Exp (Quaternion a) -> Exp Bool #

(/=) :: Exp (Quaternion a) -> Exp (Quaternion a) -> Exp Bool #

Elt a => Elt (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Associated Types

type EltR (Quaternion a) :: Type

Methods

eltR :: TypeR (EltR (Quaternion a))

tagsR :: [TagR (EltR (Quaternion a))]

fromElt :: Quaternion a -> EltR (Quaternion a)

toElt :: EltR (Quaternion a) -> Quaternion a

Storable a => Storable (Quaternion a) 
Instance details

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 () #

Binary a => Binary (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

put :: Quaternion a -> Put #

get :: Get (Quaternion a) #

putList :: [Quaternion a] -> Put #

Serial a => Serial (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

serialize :: MonadPut m => Quaternion a -> m () #

deserialize :: MonadGet m => m (Quaternion a) #

Serialize a => Serialize (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

put :: Putter (Quaternion a) #

get :: Get (Quaternion a) #

NFData a => NFData (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

rnf :: Quaternion a -> () #

Hashable a => Hashable (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

hashWithSalt :: Int -> Quaternion a -> Int #

hash :: Quaternion a -> Int #

Unbox a => Unbox (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Ixed (Quaternion a) 
Instance details

Defined in Linear.Quaternion

(RealFloat a, Epsilon a) => Epsilon (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

nearZero :: Quaternion a -> Bool #

(RealFloat a, Conjugate (Exp a)) => Conjugate (Exp (Quaternion a)) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

conjugate :: Exp (Quaternion a) -> Exp (Quaternion a) #

(Conjugate a, RealFloat a) => Conjugate (Quaternion a) 
Instance details

Defined in Linear.Quaternion

Methods

conjugate :: Quaternion a -> Quaternion a #

Random a => Random (Quaternion a) 
Instance details

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] #

randomRIO :: (Quaternion a, Quaternion a) -> IO (Quaternion a) #

randomIO :: IO (Quaternion a) #

(RealFloat a, Epsilon a) => Epsilon (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Generic1 Quaternion 
Instance details

Defined in Linear.Quaternion

Associated Types

type Rep1 Quaternion :: k -> Type #

FunctorWithIndex (E Quaternion) Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

imap :: (E Quaternion -> a -> b) -> Quaternion a -> Quaternion b #

imapped :: IndexedSetter (E Quaternion) (Quaternion a) (Quaternion b) a b #

FoldableWithIndex (E Quaternion) Quaternion 
Instance details

Defined in Linear.Quaternion

Methods

ifoldMap :: Monoid m => (E Quaternion -> a -> m) -> Quaternion a -> m #

ifolded :: IndexedFold (E Quaternion) (Quaternion a) a #

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 #

TraversableWithIndex (E Quaternion) Quaternion 
Instance details

Defined in Linear.Quaternion

Each (Quaternion a) (Quaternion b) a b 
Instance details

Defined in Linear.Quaternion

Methods

each :: Traversal (Quaternion a) (Quaternion b) a b #

Field1 (Quaternion a) (Quaternion a) a a 
Instance details

Defined in Linear.Quaternion

Methods

_1 :: Lens (Quaternion a) (Quaternion a) a a #

Field2 (Quaternion a) (Quaternion a) a a 
Instance details

Defined in Linear.Quaternion

Methods

_2 :: Lens (Quaternion a) (Quaternion a) a a #

Field3 (Quaternion a) (Quaternion a) a a 
Instance details

Defined in Linear.Quaternion

Methods

_3 :: Lens (Quaternion a) (Quaternion a) a a #

Field4 (Quaternion a) (Quaternion a) a a 
Instance details

Defined in Linear.Quaternion

Methods

_4 :: Lens (Quaternion a) (Quaternion a) a a #

(Elt a, Elt b) => Each (Exp (Quaternion a)) (Exp (Quaternion b)) (Exp a) (Exp b) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

Methods

each :: Traversal (Exp (Quaternion a)) (Exp (Quaternion b)) (Exp a) (Exp b) #

type Rep Quaternion 
Instance details

Defined in Linear.Quaternion

type Size Quaternion 
Instance details

Defined in Linear.Quaternion

type Size Quaternion = 4
data MVector s (Quaternion a) 
Instance details

Defined in Linear.Quaternion

type Rep (Quaternion a) 
Instance details

Defined in Linear.Quaternion

type Rep (Quaternion a) = D1 (MetaData "Quaternion" "Linear.Quaternion" "linear-1.21.1-GSRtap511Ww6RirKx1xviJ" 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 EltR (Quaternion a) 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

type EltR (Quaternion a) = GEltR () (Rep (Quaternion a))
type Plain (Quaternion a) Source # 
Instance details

Defined in Data.Array.Accelerate.Linear.Quaternion

data Vector (Quaternion a) 
Instance details

Defined in Linear.Quaternion

type Index (Quaternion a) 
Instance details

Defined in Linear.Quaternion

type IxValue (Quaternion a) 
Instance details

Defined in Linear.Quaternion

type IxValue (Quaternion a) = a
type Rep1 Quaternion 
Instance details

Defined in Linear.Quaternion

type Rep1 Quaternion = D1 (MetaData "Quaternion" "Linear.Quaternion" "linear-1.21.1-GSRtap511Ww6RirKx1xviJ" 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)))

pattern Quaternion_ :: Elt a => Exp a -> Exp (V3 a) -> Exp (Quaternion a) Source #

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

absi :: Floating a => Exp (Quaternion a) -> Exp a Source #

norm of the imaginary component

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 #

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

Orphan instances

Functor Quaternion Source # 
Instance details

Methods

fmap :: (Elt a, Elt b, Elt (Quaternion a), Elt (Quaternion b)) => (Exp a -> Exp b) -> Exp (Quaternion a) -> Exp (Quaternion b) #

(<$) :: (Elt a, Elt b, Elt (Quaternion a), Elt (Quaternion b)) => Exp a -> Exp (Quaternion b) -> Exp (Quaternion a) #

Additive Quaternion Source # 
Instance details

Methods

zero :: (Elt (Quaternion a), Num a) => Exp (Quaternion a) Source #

(^+^) :: (Num a, Box Quaternion a) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

(^-^) :: (Num a, Box Quaternion a) => Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

lerp :: (Num a, Box Quaternion a) => Exp a -> Exp (Quaternion a) -> Exp (Quaternion a) -> Exp (Quaternion a) Source #

Metric Quaternion Source # 
Instance details

(Lift Exp a, Elt (Plain a)) => Lift Exp (Quaternion a) Source # 
Instance details

Associated Types

type Plain (Quaternion a) :: Type #

Methods

lift :: Quaternion a -> Exp (Plain (Quaternion a)) #

Elt a => Unlift Exp (Quaternion (Exp a)) Source # 
Instance details

Methods

unlift :: Exp (Plain (Quaternion (Exp a))) -> Quaternion (Exp a) #

(RealFloat a, Elt (Complex a)) => Floating (Exp (Quaternion a)) Source # 
Instance details

RealFloat a => Fractional (Exp (Quaternion a)) Source # 
Instance details

RealFloat a => Num (Exp (Quaternion a)) Source # 
Instance details

Ord a => Ord (Quaternion a) Source # 
Instance details

Eq a => Eq (Quaternion a) Source # 
Instance details

Methods

(==) :: Exp (Quaternion a) -> Exp (Quaternion a) -> Exp Bool #

(/=) :: Exp (Quaternion a) -> Exp (Quaternion a) -> Exp Bool #

Elt a => Elt (Quaternion a) Source # 
Instance details

Associated Types

type EltR (Quaternion a) :: Type

Methods

eltR :: TypeR (EltR (Quaternion a))

tagsR :: [TagR (EltR (Quaternion a))]

fromElt :: Quaternion a -> EltR (Quaternion a)

toElt :: EltR (Quaternion a) -> Quaternion a

(RealFloat a, Conjugate (Exp a)) => Conjugate (Exp (Quaternion a)) Source # 
Instance details

Methods

conjugate :: Exp (Quaternion a) -> Exp (Quaternion a) #

(RealFloat a, Epsilon a) => Epsilon (Quaternion a) Source # 
Instance details

(Elt a, Elt b) => Each (Exp (Quaternion a)) (Exp (Quaternion b)) (Exp a) (Exp b) Source # 
Instance details

Methods

each :: Traversal (Exp (Quaternion a)) (Exp (Quaternion b)) (Exp a) (Exp b) #