# CliffordAlgebra(n, K, bLin)¶

CliffordAlgebra(`n`, `K`, bLin) defines a module of dimension `2^n` over `K`, given a bilinear form bLin on `K^n`. Examples of Clifford Algebras are: gaussians, quaternions, exterior algebras and spin algebras.

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from Magma

*: (%, K) -> %

from RightModule K

*: (Integer, %) -> %

from AbelianGroup

*: (K, %) -> %

from LeftModule K

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

/\: (%, %) -> %

Implement exterior grassmann product operator need to check precidence when used as an infix operator

=: (%, %) -> Boolean

from BasicType

\/: (%, %) -> %

Implement regressive inner, meet product operator need to check precidence when used as an infix operator

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

~: % -> %

reverse, complement, canonical dual basis

annihilate?: (%, %) -> Boolean

from Rng

antiCommutator: (%, %) -> %
associator: (%, %, %) -> %
characteristic: () -> NonNegativeInteger
coefficient: (%, List PositiveInteger) -> K

`coefficient(x, [i1, i2, ..., iN])` extracts the coefficient of `e(i1)*e(i2)*...*e(iN)` in `x`.

coerce: % -> OutputForm
coerce: Integer -> %
coerce: K -> %

from Algebra K

commutator: (%, %) -> %
conj: % -> %

implements Clifford conjugate for a multivector by involution and reverse of each term separately using: grade: 0 1 2 3… multi: 1 `-1` `-1` 1…

e: PositiveInteger -> %

`e(n)` produces phi(e_i) where e_i is `i`-th basis vector in `K^n` and phi is canonical embedding of `K^n` into Clifford algebra.

ee: List PositiveInteger -> %

to allow entries like: ee[1, 2]

eFromBinaryMap: NonNegativeInteger -> %

`eFromBinaryMap(n)` sets the appropriate Grassmann basis, for example: eFromBinaryMap(0) = 1 (scalar) eFromBinaryMap(1) = `e1` eFromBinaryMap(2) = `e2` eFromBinaryMap(3) = e1/e2

ePseudoscalar: () -> %

unit pseudoscalar

grade: % -> NonNegativeInteger

return the max grade of multivector, for example 1 is grade 0 `e1` is grade 1 e1/e2 is grade 2 and so on

gradeInvolution: % -> %

`x` = ((`-1`)^grade(`x`))`*x`

latex: % -> String

from SetCategory

lc: (%, %) -> %

left contraction inner product

leftPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

leftPower: (%, PositiveInteger) -> %

from Magma

leftRecip: % -> Union(%, failed)

from MagmaWithUnit

monomial: (K, List PositiveInteger) -> %

`monomial(c, [i1, i2, ..., iN])` produces the value given by `c*e(i1)*e(i2)*...*e(iN)`.

multivector: List K -> %

to allow entries like: 1+2*e1+3*e2+4*e1e2 = multivector[1, 2, 3, 4]

one?: % -> Boolean

from MagmaWithUnit

opposite?: (%, %) -> Boolean

from AbelianMonoid

plenaryPower: (%, PositiveInteger) -> %
rc: (%, %) -> %

right contraction inner product

recip: % -> Union(%, failed)

`recip(x)` computes the multiplicative inverse of `x` or “failed” if `x` is not invertible.

reverse: % -> %

implements reverse for a single term by using: grade: 0 1 2 3… multi: 1 1 `-1` `-1`

rightPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

rightPower: (%, PositiveInteger) -> %

from Magma

rightRecip: % -> Union(%, failed)

from MagmaWithUnit

sample: %

from AbelianMonoid

setMode: (String, Boolean) -> Boolean

allows override of parameters such as orthogonal used for debugging

subtractIfCan: (%, %) -> Union(%, failed)
toTable: (% -> %) -> Matrix %

displays table of unary function such as inverse, reverse, complement, or dual basis could have returned type ‘List List %’ but matrix displays better

toTable: ((%, %) -> %) -> Matrix %

displays multiplication table for binary operation which is represented as a function with two parameters. row number represents first operand in binary order column number represents second operand in binary order could have returned type ‘List List %’ but matrix displays better

zero?: % -> Boolean

from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

BasicType

BiModule(%, %)

BiModule(K, K)

CancellationAbelianMonoid

Magma

MagmaWithUnit

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

unitsKnown