algebra-4.3.1: Constructive abstract algebra
Safe HaskellSafe-Inferred
LanguageHaskell98

Numeric.Algebra.Quaternion

Synopsis

Documentation

class Distinguished t where Source #

Methods

e :: t Source #

Instances

Instances details
Distinguished ComplexBasis Source # 
Instance details

Defined in Numeric.Algebra.Complex

Distinguished DualBasis Source # 
Instance details

Defined in Numeric.Algebra.Dual

Methods

e :: DualBasis Source #

Distinguished QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Distinguished DualBasis' Source # 
Instance details

Defined in Numeric.Coalgebra.Dual

Methods

e :: DualBasis' Source #

Distinguished QuaternionBasis' Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Distinguished TrigBasis Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

e :: TrigBasis Source #

Rig r => Distinguished (Complex r) Source # 
Instance details

Defined in Numeric.Algebra.Complex

Methods

e :: Complex r Source #

Rig r => Distinguished (Dual r) Source # 
Instance details

Defined in Numeric.Algebra.Dual

Methods

e :: Dual r Source #

Rig r => Distinguished (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

e :: Quaternion r Source #

Rig r => Distinguished (Dual' r) Source # 
Instance details

Defined in Numeric.Coalgebra.Dual

Methods

e :: Dual' r Source #

Rig r => Distinguished (Quaternion' r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Methods

e :: Quaternion' r Source #

Rig r => Distinguished (Trig r) Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

e :: Trig r Source #

Distinguished a => Distinguished (Covector r a) Source # 
Instance details

Defined in Numeric.Algebra.Distinguished.Class

Methods

e :: Covector r a Source #

Rig r => Distinguished (ComplexBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Complex

Methods

e :: ComplexBasis -> r Source #

Rig r => Distinguished (DualBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Dual

Methods

e :: DualBasis -> r Source #

Rig r => Distinguished (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

e :: QuaternionBasis -> r Source #

Rig r => Distinguished (DualBasis' -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Dual

Methods

e :: DualBasis' -> r Source #

Rig r => Distinguished (QuaternionBasis' -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Methods

e :: QuaternionBasis' -> r Source #

Rig r => Distinguished (TrigBasis -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

e :: TrigBasis -> r Source #

class Distinguished r => Complicated r where Source #

Methods

i :: r Source #

Instances

Instances details
Complicated ComplexBasis Source # 
Instance details

Defined in Numeric.Algebra.Complex

Complicated QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Complicated QuaternionBasis' Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Complicated TrigBasis Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

i :: TrigBasis Source #

Rig r => Complicated (Complex r) Source # 
Instance details

Defined in Numeric.Algebra.Complex

Methods

i :: Complex r Source #

Rig r => Complicated (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

i :: Quaternion r Source #

Rig r => Complicated (Quaternion' r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Methods

i :: Quaternion' r Source #

Rig r => Complicated (Trig r) Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

i :: Trig r Source #

Complicated a => Complicated (Covector r a) Source # 
Instance details

Defined in Numeric.Algebra.Complex.Class

Methods

i :: Covector r a Source #

Rig r => Complicated (ComplexBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Complex

Methods

i :: ComplexBasis -> r Source #

Rig r => Complicated (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

i :: QuaternionBasis -> r Source #

Rig r => Complicated (QuaternionBasis' -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Methods

i :: QuaternionBasis' -> r Source #

Rig r => Complicated (TrigBasis -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Trigonometric

Methods

i :: TrigBasis -> r Source #

class Complicated t => Hamiltonian t where Source #

Methods

j :: t Source #

k :: t Source #

Instances

Instances details
Hamiltonian QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Hamiltonian QuaternionBasis' Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Rig r => Hamiltonian (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Rig r => Hamiltonian (Quaternion' r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

Hamiltonian a => Hamiltonian (Covector r a) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion.Class

Methods

j :: Covector r a Source #

k :: Covector r a Source #

Rig r => Hamiltonian (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Rig r => Hamiltonian (QuaternionBasis' -> r) Source # 
Instance details

Defined in Numeric.Coalgebra.Quaternion

data QuaternionBasis Source #

Constructors

E 
I 
J 
K 

Instances

Instances details
Complicated QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Distinguished QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Hamiltonian QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Data QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> QuaternionBasis -> c QuaternionBasis #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c QuaternionBasis #

toConstr :: QuaternionBasis -> Constr #

dataTypeOf :: QuaternionBasis -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c QuaternionBasis) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c QuaternionBasis) #

gmapT :: (forall b. Data b => b -> b) -> QuaternionBasis -> QuaternionBasis #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> QuaternionBasis -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> QuaternionBasis -> r #

gmapQ :: (forall d. Data d => d -> u) -> QuaternionBasis -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> QuaternionBasis -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> QuaternionBasis -> m QuaternionBasis #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> QuaternionBasis -> m QuaternionBasis #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> QuaternionBasis -> m QuaternionBasis #

Bounded QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Enum QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Ix QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Read QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Show QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Eq QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Ord QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => Algebra r QuaternionBasis Source #

the quaternion algebra

Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis Source #

the trivial diagonal coalgebra

Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveAlgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

inv :: (QuaternionBasis -> r) -> QuaternionBasis -> r Source #

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveCoalgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

coinv :: (QuaternionBasis -> r) -> QuaternionBasis -> r Source #

(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

counit :: (QuaternionBasis -> r) -> r Source #

(TriviallyInvolutive r, Rng r) => UnitalAlgebra r QuaternionBasis Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

unit :: r -> QuaternionBasis -> r Source #

MonadReader QuaternionBasis Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Rig r => Complicated (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

i :: QuaternionBasis -> r Source #

Rig r => Distinguished (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

e :: QuaternionBasis -> r Source #

Rig r => Hamiltonian (QuaternionBasis -> r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

data Quaternion a Source #

Constructors

Quaternion a a a a 

Instances

Instances details
Representable Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Associated Types

type Rep Quaternion 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

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

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

Foldable1 Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

fold1 :: Semigroup m => Quaternion m -> m #

foldMap1 :: Semigroup m => (a -> m) -> Quaternion a -> m #

foldMap1' :: Semigroup m => (a -> m) -> Quaternion a -> m #

toNonEmpty :: Quaternion a -> NonEmpty a #

maximum :: Ord a => Quaternion a -> a #

minimum :: Ord a => Quaternion a -> a #

head :: Quaternion a -> a #

last :: Quaternion a -> a #

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

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

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

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

Distributive Quaternion Source # 
Instance details

Defined in Numeric.Algebra.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) #

Applicative Quaternion Source # 
Instance details

Defined in Numeric.Algebra.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 # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

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

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

Monad Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

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

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

return :: a -> Quaternion a #

Foldable Quaternion Source # 
Instance details

Defined in Numeric.Algebra.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 #

Traversable Quaternion Source # 
Instance details

Defined in Numeric.Algebra.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) #

Apply Quaternion Source # 
Instance details

Defined in Numeric.Algebra.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 # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

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

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

Traversable1 Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

traverse1 :: Apply f => (a -> f b) -> Quaternion a -> f (Quaternion b) #

sequence1 :: Apply f => Quaternion (f b) -> f (Quaternion b) #

MonadReader QuaternionBasis Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

LeftModule r s => LeftModule r (Quaternion s) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

(.*) :: r -> Quaternion s -> Quaternion s Source #

RightModule r s => RightModule r (Quaternion s) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

(*.) :: Quaternion s -> r -> Quaternion s Source #

(TriviallyInvolutive r, Rng r) => Quadrance r (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

quadrance :: Quaternion r -> r Source #

Abelian r => Abelian (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Additive r => Additive (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Idempotent r => Idempotent (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Partitionable r => Partitionable (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

partitionWith :: (Quaternion r -> Quaternion r -> r0) -> Quaternion r -> NonEmpty r0 Source #

Group r => Group (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Monoidal r => Monoidal (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => Multiplicative (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => Semiring (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Rig r => Complicated (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

i :: Quaternion r Source #

Rig r => Distinguished (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Methods

e :: Quaternion r Source #

(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => InvolutiveMultiplication (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

Rig r => Hamiltonian (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Ring r) => Unital (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Ring r) => Rig (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Ring r) => Ring (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

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

Defined in Numeric.Algebra.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) #

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

Defined in Numeric.Algebra.Quaternion

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

Defined in Numeric.Algebra.Quaternion

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

Defined in Numeric.Algebra.Quaternion

Methods

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

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

(TriviallyInvolutive r, Rng r) => LeftModule (Quaternion r) (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

(TriviallyInvolutive r, Rng r) => RightModule (Quaternion r) (Quaternion r) Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

type Rep Quaternion Source # 
Instance details

Defined in Numeric.Algebra.Quaternion

complicate :: Complicated c => QuaternionBasis -> (c, c) Source #

Cayley-Dickson quaternion isomorphism (one way)

vectorPart :: (Representable f, Rep f ~ QuaternionBasis) => f r -> (r, r, r) Source #