algebra-3.1: Constructive abstract algebra

Safe Haskell | None

Numeric.Coalgebra.Geometric

Contents

- Geometric coalgebra primitives
- Operations over an eigenbasis
- Grade
- Inversions
- Products
- Inner products

Synopsis

- newtype BasisCoblade m = BasisCoblade {
  - runBasisCoblade :: Word64
  }
- type Comultivector r m = Covector r (BasisCoblade m)
- class Eigenbasis m where
  - euclidean :: proxy m -> Bool
  - antiEuclidean :: proxy m -> Bool
  - v :: m -> BasisCoblade m
  - e :: Int -> m
- class (Ring r, Eigenbasis m) => Eigenmetric r m where
  - metric :: m -> r
- newtype Euclidean = Euclidean Int
- grade :: BasisCoblade m -> Int
- filterGrade :: Monoidal r => BasisCoblade m -> Int -> Comultivector r m
- reverse :: Group r => BasisCoblade m -> Comultivector r m
- gradeInversion :: Group r => BasisCoblade m -> Comultivector r m
- cliffordConjugate :: Group r => BasisCoblade m -> Comultivector r m
- geometric :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- outer :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- contractL :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- contractR :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- hestenes :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- dot :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r m
- liftProduct :: (BasisCoblade m -> BasisCoblade m -> Comultivector r m) -> Comultivector r m -> Comultivector r m -> Comultivector r m

# Geometric coalgebra primitives

newtype BasisCoblade m Source

Constructors

BasisCoblade |

Fields

runBasisCoblade :: Word64

Instances

RightModule Natural (BasisCoblade m) |
LeftModule Natural (BasisCoblade m) |
Eigenmetric r m => Coalgebra r (BasisCoblade m) |
Eigenmetric r m => CounitalCoalgebra r (BasisCoblade m) |
Bounded (BasisCoblade m) |
Enum (BasisCoblade m) |
Eq (BasisCoblade m) |
Integral (BasisCoblade m) |
Num (BasisCoblade m) |
Ord (BasisCoblade m) |
Read (BasisCoblade m) |
Real (BasisCoblade m) |
Show (BasisCoblade m) |
Ix (BasisCoblade m) |
Bits (BasisCoblade m) |
HasTrie (BasisCoblade m) |
Abelian (BasisCoblade m) |
Additive (BasisCoblade m) |
Monoidal (BasisCoblade m) |
Semiring (BasisCoblade m) |
Multiplicative (BasisCoblade m) |
Unital (BasisCoblade m) |
DecidableAssociates (BasisCoblade m) |
DecidableUnits (BasisCoblade m) |
DecidableZero (BasisCoblade m) |
Rig (BasisCoblade m) |
Commutative (BasisCoblade m) |

type Comultivector r m = Covector r (BasisCoblade m)Source

# Operations over an eigenbasis

class Eigenbasis m where Source

Methods

euclidean :: proxy m -> Bool Source

antiEuclidean :: proxy m -> Bool Source

v :: m -> BasisCoblade mSource

e :: Int -> mSource

Instances

Eigenbasis Euclidean |

class (Ring r, Eigenbasis m) => Eigenmetric r m where Source

Methods

metric :: m -> rSource

Instances

Ring r => Eigenmetric r Euclidean |

newtype Euclidean Source

Constructors

Euclidean Int |

Instances

Enum Euclidean |
Eq Euclidean |
Integral Euclidean |
Data Euclidean |
Num Euclidean |
Ord Euclidean |
Read Euclidean |
Real Euclidean |
Show Euclidean |
Ix Euclidean |
Typeable Euclidean |
HasTrie Euclidean |
Abelian Euclidean |
Additive Euclidean |
Monoidal Euclidean |
Semiring Euclidean |
Multiplicative Euclidean |
Group Euclidean |
Unital Euclidean |
Rig Euclidean |
Ring Euclidean |
Commutative Euclidean |
TriviallyInvolutive Euclidean |
InvolutiveSemiring Euclidean |
InvolutiveMultiplication Euclidean |
Eigenbasis Euclidean |
RightModule Integer Euclidean |
RightModule Natural Euclidean |
LeftModule Integer Euclidean |
LeftModule Natural Euclidean |
Ring r => Eigenmetric r Euclidean |

# Grade

grade :: BasisCoblade m -> Int Source

filterGrade :: Monoidal r => BasisCoblade m -> Int -> Comultivector r mSource

# Inversions

reverse :: Group r => BasisCoblade m -> Comultivector r mSource

gradeInversion :: Group r => BasisCoblade m -> Comultivector r mSource

cliffordConjugate :: Group r => BasisCoblade m -> Comultivector r mSource

# Products

geometric :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

outer :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

# Inner products

contractL :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

contractR :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

hestenes :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

dot :: Eigenmetric r m => BasisCoblade m -> BasisCoblade m -> Comultivector r mSource

liftProduct :: (BasisCoblade m -> BasisCoblade m -> Comultivector r m) -> Comultivector r m -> Comultivector r m -> Comultivector r mSource