# Maths - Clifford Algebra - Representation

There is an alternative way to encode the Clifford algebras, that is to represent the bases e1,e2... and the higher order bases e12... as matrices. Any multivector can therefore be represented as a matrix. This matrix will be a linear combination of these bases.

Note: this is different from a matrix transformation in like this:
Unlike a conventional matrix transform a matrix representation behaves exactly equivalent to Clifford Algebra so transforms are of the form: m*p*m-1
 cos θ -sin θ sin θ cos θ

Representing groups using linear algebra like this is known as representation theory.

An example of this is Pauli Matricies which can be used to represent quaternion like algebra.

### Applying Representation theory to Clifford Algebra

In this case we have:

v • u + u • v = 2 Q(v,u)

or in in terms of the basis vectors:

ei • ej + ej • ei = 2 Q(ei,ej)

where:

• v, u are vectors
• ej,ej are basis vectors
• Q is quadratic form

### Generating a Clifford algebra using a program

Here I am experimenting with a computer algebra program to:

1. Generate a group from the Clifford algebra
2. Generate the representation from the group.

We can use a computer program to generate these groups, here I have used Axiom/FriCAS which is described here.

```K := Fraction(Integer)

Type: Type
CA := CliffordAlgebra(2,K,[[1,0],[0,1]])

Type: Type
F := toFiniteGroup()\$CA
toFiniteGroup # elements=8
generateNames n=8
toFiniteGroup strngs:11-11e1-e1e2-e2e12-e12

Type: Type
toTable()\$F

```
 11 -11 e1 -e1 e2 -e2 e12 -e12 -11 11 -e1 e1 -e2 e2 -e12 e12 e1 -e1 11 -11 e12 -e12 e2 -e2 -e1 e1 -11 11 -e12 e12 -e2 e2 e2 -e2 -e12 e12 11 -11 -e1 e1 -e2 e2 e12 -e12 -11 11 e1 -e1 e12 -e12 -e2 e2 e1 -e1 -11 11 -e12 e12 e2 -e2 -e1 e1 11 -11
```

Type: Table(8)
PG := toPermutation()\$F

```
<(1 2)(3 4)(5 6)(7 8),(1 4)(2 3)(5 8)(6 7),(1 6)(2 5)(3 7)(4 8)>
```

Type: PermutationGroup(PositiveInteger)
permutationRepresentation(PG::(List Permutation PositiveInteger),8)

```
[
 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0
,
 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
,
 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
]
```
Type: List(Matrix(Integer))
(7) ->
```
if we replace
 1 0 0 1
with 1 and
 0 1 1 0
with -1 we get
[
 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1
,
 0 -1 0 0 -1 0 0 0 0 0 0 -1 0 0 -1 0
,
 0 0 -1 0 0 0 0 1 -1 0 0 0 0 1 0 0
]

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

 Clifford Algebra to Geometric Calculus: A Unified Language for Mathematics and Physics (Fundamental Theories of Physics). This book is intended for mathematicians and physicists rather than programmers, it is very theoretical. It covers the algebra and calculus of multivectors of any dimension and is not specific to 3D modelling.

 New Foundations for Classical Mechanics (Fundamental Theories of Physics). This is very good on the geometric interpretation of this algebra. It has lots of insights into the mechanics of solid bodies. I still cant work out if the position, velocity, etc. of solid bodies can be represented by a 3D multivector or if 4 or 5D multivectors are required to represent translation and rotation.