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.

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from LeftModule %

*: (%, 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: (%, %) -> %

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: % -> OutputForm

from CoercibleTo OutputForm

coerce: Integer -> %

from NonAssociativeRing

coerce: K -> %

from Algebra K

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.

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

hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

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

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)

from CancellationAbelianMonoid

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

Algebra K

BasicType

BiModule(%, %)

BiModule(K, K)

CancellationAbelianMonoid

CoercibleTo OutputForm

LeftModule %

LeftModule K

Magma

MagmaWithUnit

Module K

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

RightModule %

RightModule K

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

unitsKnown