CliffordAlgebra(n, K, bLin)

clifford.spad line 348 [edit on github]

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.

* : (%, %) -> %
from Magma
* : (%, K) -> %
from RightModule(K)
* : (K, %) -> %
from LeftModule(K)
* : (Integer, %) -> %
from AbelianGroup
* : (NonNegativeInteger, %) -> %
from AbelianMonoid
* : (PositiveInteger, %) -> %
from AbelianSemiGroup
+ : (%, %) -> %
from AbelianSemiGroup
- : % -> %
from AbelianGroup
- : (%, %) -> %
from AbelianGroup
/\ : (%, %) -> %

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

0 : () -> %
from AbelianMonoid
1 : () -> %
from MagmaWithUnit
= : (%, %) -> Boolean
from BasicType
\/ : (%, %) -> %

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

^ : (%, NonNegativeInteger) -> %
from MagmaWithUnit
^ : (%, PositiveInteger) -> %
from Magma
annihilate? : (%, %) -> Boolean
from Rng
antiCommutator : (%, %) -> %
from NonAssociativeSemiRng
associator : (%, %, %) -> %
from NonAssociativeRng
characteristic : () -> NonNegativeInteger
from NonAssociativeRing
coefficient : (%, List(PositiveInteger)) -> K

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

coerce : K -> %
from Algebra(K)
coerce : Integer -> %
from NonAssociativeRing
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
commutator : (%, %) -> %
from NonAssociativeRng
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.

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

ee : List(PositiveInteger) -> %

to allow entries like: ee[1, 2]

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) -> %
from NonAssociativeAlgebra(K)
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

setMode(s, b) allows override of parameters such as orthogonal used for debugging

subtractIfCan : (%, %) -> Union(%, "failed")
from CancellationAbelianMonoid
toTable : Mapping(%, %) -> 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 : Mapping(%, %, %) -> 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
~ : % -> %

reverse, complement, canonical dual basis

~= : (%, %) -> Boolean
from BasicType

RightModule(%)

Monoid

LeftModule(K)

AbelianMonoid

CancellationAbelianMonoid

MagmaWithUnit

NonAssociativeRing

AbelianGroup

RightModule(K)

LeftModule(%)

SetCategory

Rng

Magma

SemiGroup

NonAssociativeRng

Module(K)

BiModule(%, %)

unitsKnown

CoercibleTo(OutputForm)

AbelianSemiGroup

Algebra(K)

NonAssociativeAlgebra(K)

NonAssociativeSemiRing

BiModule(K, K)

Ring

SemiRng

NonAssociativeSemiRng

BasicType

SemiRing