algebra-4.3.1: Constructive abstract algebra

Safe HaskellSafe
LanguageHaskell98

Numeric.Coalgebra.Quaternion

Synopsis

Documentation

class Distinguished t where #

Minimal complete definition

e

Methods

e :: t #

Instances

Distinguished TrigBasis # 

Methods

e :: TrigBasis #

Distinguished QuaternionBasis' # 

Methods

e :: QuaternionBasis' #

Distinguished DualBasis' # 

Methods

e :: DualBasis' #

Distinguished QuaternionBasis # 

Methods

e :: QuaternionBasis #

Distinguished DualBasis # 

Methods

e :: DualBasis #

Distinguished ComplexBasis # 

Methods

e :: ComplexBasis #

Rig r => Distinguished (Trig r) # 

Methods

e :: Trig r #

Rig r => Distinguished (Quaternion' r) # 

Methods

e :: Quaternion' r #

Rig r => Distinguished (Dual' r) # 

Methods

e :: Dual' r #

Rig r => Distinguished (Quaternion r) # 

Methods

e :: Quaternion r #

Rig r => Distinguished (Dual r) # 

Methods

e :: Dual r #

Rig r => Distinguished (Complex r) # 

Methods

e :: Complex r #

Rig r => Distinguished (TrigBasis -> r) # 

Methods

e :: TrigBasis -> r #

Rig r => Distinguished (QuaternionBasis' -> r) # 

Methods

e :: QuaternionBasis' -> r #

Rig r => Distinguished (DualBasis' -> r) # 

Methods

e :: DualBasis' -> r #

Rig r => Distinguished (QuaternionBasis -> r) # 

Methods

e :: QuaternionBasis -> r #

Rig r => Distinguished (DualBasis -> r) # 

Methods

e :: DualBasis -> r #

Rig r => Distinguished (ComplexBasis -> r) # 

Methods

e :: ComplexBasis -> r #

Distinguished a => Distinguished (Covector r a) # 

Methods

e :: Covector r a #

class Distinguished r => Complicated r where #

Minimal complete definition

i

Methods

i :: r #

Instances

Complicated TrigBasis # 

Methods

i :: TrigBasis #

Complicated QuaternionBasis' # 

Methods

i :: QuaternionBasis' #

Complicated QuaternionBasis # 

Methods

i :: QuaternionBasis #

Complicated ComplexBasis # 

Methods

i :: ComplexBasis #

Rig r => Complicated (Trig r) # 

Methods

i :: Trig r #

Rig r => Complicated (Quaternion' r) # 

Methods

i :: Quaternion' r #

Rig r => Complicated (Quaternion r) # 

Methods

i :: Quaternion r #

Rig r => Complicated (Complex r) # 

Methods

i :: Complex r #

Rig r => Complicated (TrigBasis -> r) # 

Methods

i :: TrigBasis -> r #

Rig r => Complicated (QuaternionBasis' -> r) # 

Methods

i :: QuaternionBasis' -> r #

Rig r => Complicated (QuaternionBasis -> r) # 

Methods

i :: QuaternionBasis -> r #

Rig r => Complicated (ComplexBasis -> r) # 

Methods

i :: ComplexBasis -> r #

Complicated a => Complicated (Covector r a) # 

Methods

i :: Covector r a #

class Complicated t => Hamiltonian t where #

Minimal complete definition

j, k

Methods

j :: t #

k :: t #

data QuaternionBasis' #

Constructors

E' 
I' 
J' 
K' 

Instances

Bounded QuaternionBasis' # 
Enum QuaternionBasis' # 
Eq QuaternionBasis' # 
Data QuaternionBasis' # 

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

Ord QuaternionBasis' # 
Read QuaternionBasis' # 
Show QuaternionBasis' # 
Ix QuaternionBasis' # 
Distinguished QuaternionBasis' # 

Methods

e :: QuaternionBasis' #

Complicated QuaternionBasis' # 

Methods

i :: QuaternionBasis' #

Hamiltonian QuaternionBasis' # 
MonadReader QuaternionBasis' Quaternion' # 
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis' #

dual quaternion comultiplication

(TriviallyInvolutive r, Semiring r) => Algebra r QuaternionBasis' #

the trivial diagonal algebra

(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis' # 
(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis' # 

Methods

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

(TriviallyInvolutive r, Semiring r) => UnitalAlgebra r QuaternionBasis' # 

Methods

unit :: r -> QuaternionBasis' -> r #

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis' # 

Methods

antipode :: (QuaternionBasis' -> r) -> QuaternionBasis' -> r #

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveCoalgebra r QuaternionBasis' # 

Methods

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

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveAlgebra r QuaternionBasis' # 

Methods

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

Rig r => Distinguished (QuaternionBasis' -> r) # 

Methods

e :: QuaternionBasis' -> r #

Rig r => Complicated (QuaternionBasis' -> r) # 

Methods

i :: QuaternionBasis' -> r #

Rig r => Hamiltonian (QuaternionBasis' -> r) # 

Methods

j :: QuaternionBasis' -> r #

k :: QuaternionBasis' -> r #

data Quaternion' a #

Constructors

Quaternion' a a a a 

Instances

Monad Quaternion' # 
Functor Quaternion' # 

Methods

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

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

Applicative 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' # 

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

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

Distributive 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' # 

Associated Types

type Rep (Quaternion' :: * -> *) :: * #

Traversable1 Quaternion' # 

Methods

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

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

Foldable1 Quaternion' # 

Methods

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

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

toNonEmpty :: Quaternion' a -> NonEmpty a #

Apply 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' # 
MonadReader QuaternionBasis' Quaternion' # 
RightModule r s => RightModule r (Quaternion' s) # 

Methods

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

LeftModule r s => LeftModule r (Quaternion' s) # 

Methods

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

(TriviallyInvolutive r, Rng r) => Quadrance r (Quaternion' r) # 

Methods

quadrance :: Quaternion' r -> r #

Eq a => Eq (Quaternion' a) # 
Data a => Data (Quaternion' a) # 

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

Read a => Read (Quaternion' a) # 
Show a => Show (Quaternion' a) # 
Idempotent r => Idempotent (Quaternion' r) # 
Abelian r => Abelian (Quaternion' r) # 
Partitionable r => Partitionable (Quaternion' r) # 

Methods

partitionWith :: (Quaternion' r -> Quaternion' r -> r) -> Quaternion' r -> NonEmpty r #

Additive r => Additive (Quaternion' r) # 
Monoidal r => Monoidal (Quaternion' r) # 

Methods

zero :: Quaternion' r #

sinnum :: Natural -> Quaternion' r -> Quaternion' r #

sumWith :: Foldable f => (a -> Quaternion' r) -> f a -> Quaternion' r #

(TriviallyInvolutive r, Semiring r) => Semiring (Quaternion' r) # 
(TriviallyInvolutive r, Semiring r) => Multiplicative (Quaternion' r) # 
Group r => Group (Quaternion' r) # 
(TriviallyInvolutive r, Ring r) => Unital (Quaternion' r) # 

Methods

one :: Quaternion' r #

pow :: Quaternion' r -> Natural -> Quaternion' r #

productWith :: Foldable f => (a -> Quaternion' r) -> f a -> Quaternion' r #

(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion' r) # 
(TriviallyInvolutive r, Rng r) => InvolutiveMultiplication (Quaternion' r) # 

Methods

adjoint :: Quaternion' r -> Quaternion' r #

(TriviallyInvolutive r, Ring r) => Rig (Quaternion' r) # 
(TriviallyInvolutive r, Ring r) => Ring (Quaternion' r) # 
Rig r => Distinguished (Quaternion' r) # 

Methods

e :: Quaternion' r #

Rig r => Complicated (Quaternion' r) # 

Methods

i :: Quaternion' r #

Rig r => Hamiltonian (Quaternion' r) # 

Methods

j :: Quaternion' r #

k :: Quaternion' r #

(TriviallyInvolutive r, Rng r) => RightModule (Quaternion' r) (Quaternion' r) # 

Methods

(*.) :: Quaternion' r -> Quaternion' r -> Quaternion' r #

(TriviallyInvolutive r, Rng r) => LeftModule (Quaternion' r) (Quaternion' r) # 

Methods

(.*) :: Quaternion' r -> Quaternion' r -> Quaternion' r #

type Rep Quaternion' # 

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

Cayley-Dickson quaternion isomorphism (one way)

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