algebra-3.1: Constructive abstract algebra

Safe Haskell | None

Numeric.Algebra.Quaternion

Synopsis

- class Distinguished t where
  - e :: t
- class Distinguished r => Complicated r where
  - i :: r
- class Complicated t => Hamiltonian t where
  - j :: t
  - k :: t
- data QuaternionBasis
  - = E
  - | I
  - | J
  - | K
- data Quaternion a = Quaternion a a a a
- complicate :: Complicated c => QuaternionBasis -> (c, c)
- vectorPart :: (Representable f, Key f ~ QuaternionBasis) => f r -> (r, r, r)
- scalarPart :: (Representable f, Key f ~ QuaternionBasis) => f r -> r

# Documentation

class Distinguished t where Source

Methods

e :: tSource

Instances

Distinguished ComplexBasis |
Distinguished QuaternionBasis |
Distinguished DualBasis |
Distinguished DualBasis' |
Distinguished QuaternionBasis' |
Distinguished TrigBasis |
Rig r => Distinguished (Complex r) |
Rig r => Distinguished (Quaternion r) |
Rig r => Distinguished (Dual r) |
Rig r => Distinguished (Dual' r) |
Rig r => Distinguished (Quaternion' r) |
Rig r => Distinguished (Trig r) |
Rig r => Distinguished (ComplexBasis -> r) |
Rig r => Distinguished (QuaternionBasis -> r) |
Rig r => Distinguished (DualBasis -> r) |
Rig r => Distinguished (DualBasis' -> r) |
Rig r => Distinguished (QuaternionBasis' -> r) |
Rig r => Distinguished (TrigBasis -> r) |
Rig r => Distinguished (:->: ComplexBasis r) |
Rig r => Distinguished (:->: QuaternionBasis r) |
Rig r => Distinguished (:->: QuaternionBasis' r) |
Rig r => Distinguished (:->: TrigBasis r) |
Distinguished a => Distinguished (Covector r a) |

class Distinguished r => Complicated r where Source

Methods

i :: rSource

Instances

Complicated ComplexBasis |
Complicated QuaternionBasis |
Complicated QuaternionBasis' |
Complicated TrigBasis |
Rig r => Complicated (Complex r) |
Rig r => Complicated (Quaternion r) |
Rig r => Complicated (Quaternion' r) |
Rig r => Complicated (Trig r) |
Rig r => Complicated (ComplexBasis -> r) |
Rig r => Complicated (QuaternionBasis -> r) |
Rig r => Complicated (QuaternionBasis' -> r) |
Rig r => Complicated (TrigBasis -> r) |
Rig r => Complicated (:->: ComplexBasis r) |
Rig r => Complicated (:->: QuaternionBasis r) |
Rig r => Complicated (:->: QuaternionBasis' r) |
Rig r => Complicated (:->: TrigBasis r) |
Complicated a => Complicated (Covector r a) |

class Complicated t => Hamiltonian t where Source

Methods

j :: tSource

k :: tSource

Instances

Hamiltonian QuaternionBasis |
Hamiltonian QuaternionBasis' |
Rig r => Hamiltonian (Quaternion r) |
Rig r => Hamiltonian (Quaternion' r) |
Rig r => Hamiltonian (QuaternionBasis -> r) |
Rig r => Hamiltonian (QuaternionBasis' -> r) |
Rig r => Hamiltonian (:->: QuaternionBasis r) |
Rig r => Hamiltonian (:->: QuaternionBasis' r) |
Hamiltonian a => Hamiltonian (Covector r a) |

data QuaternionBasis Source

Constructors

E |
I |
J |
K |

Instances

Bounded QuaternionBasis |
Enum QuaternionBasis |
Eq QuaternionBasis |
Data QuaternionBasis |
Ord QuaternionBasis |
Read QuaternionBasis |
Show QuaternionBasis |
Ix QuaternionBasis |
Typeable QuaternionBasis |
HasTrie QuaternionBasis |
Distinguished QuaternionBasis |
Complicated QuaternionBasis |
Hamiltonian QuaternionBasis |
MonadReader QuaternionBasis Quaternion |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis | the trivial diagonal coalgebra
(TriviallyInvolutive r, Rng r) => Algebra r QuaternionBasis | the quaternion algebra
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis |
(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis |
(TriviallyInvolutive r, Rng r) => UnitalAlgebra r QuaternionBasis |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveCoalgebra r QuaternionBasis |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveAlgebra r QuaternionBasis |
Rig r => Distinguished (QuaternionBasis -> r) |
Rig r => Distinguished (:->: QuaternionBasis r) |
Rig r => Complicated (QuaternionBasis -> r) |
Rig r => Complicated (:->: QuaternionBasis r) |
Rig r => Hamiltonian (QuaternionBasis -> r) |
Rig r => Hamiltonian (:->: QuaternionBasis r) |

data Quaternion a Source

Constructors

Quaternion a a a a |

Instances

Monad Quaternion |
Functor Quaternion |
Typeable1 Quaternion |
Applicative Quaternion |
Foldable Quaternion |
Traversable Quaternion |
Distributive Quaternion |
Keyed Quaternion |
Zip Quaternion |
ZipWithKey Quaternion |
Indexable Quaternion |
Lookup Quaternion |
Adjustable Quaternion |
FoldableWithKey Quaternion |
FoldableWithKey1 Quaternion |
TraversableWithKey Quaternion |
TraversableWithKey1 Quaternion |
Representable Quaternion |
Traversable1 Quaternion |
Foldable1 Quaternion |
Apply Quaternion |
Bind Quaternion |
MonadReader QuaternionBasis Quaternion |
RightModule r s => RightModule r (Quaternion s) |
LeftModule r s => LeftModule r (Quaternion s) |
(TriviallyInvolutive r, Rng r) => Quadrance r (Quaternion r) |
Eq a => Eq (Quaternion a) |
Data a => Data (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) |
Additive r => Additive (Quaternion r) |
Monoidal r => Monoidal (Quaternion r) |
(TriviallyInvolutive r, Rng r) => Semiring (Quaternion r) |
(TriviallyInvolutive r, Rng r) => Multiplicative (Quaternion r) |
Group r => Group (Quaternion r) |
(TriviallyInvolutive r, Ring r) => Unital (Quaternion r) |
(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion r) |
(TriviallyInvolutive r, Ring r) => Rig (Quaternion r) |
(TriviallyInvolutive r, Ring r) => Ring (Quaternion r) |
(TriviallyInvolutive r, Rng r) => InvolutiveMultiplication (Quaternion r) |
Rig r => Distinguished (Quaternion r) |
Rig r => Complicated (Quaternion r) |
Rig r => Hamiltonian (Quaternion r) |
(TriviallyInvolutive r, Rng r) => RightModule (Quaternion r) (Quaternion r) |
(TriviallyInvolutive r, Rng r) => LeftModule (Quaternion r) (Quaternion r) |

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

Cayley-Dickson quaternion isomorphism (one way)

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

scalarPart :: (Representable f, Key f ~ QuaternionBasis) => f r -> rSource