Maths - choosing bases - 3D

When we are working on Geometric algebras based on a 3 dimensional vector algebra, what choices do we have? For instance, we can try changing the following aspects of the algebra:

Choosing the order of the bivector and trivector basis vectors

When we looked at the 2D case the order of the dimensions was reasonably obvious, we just used e,e1,e2,e12 which corresponds with counting in binary code order: 00,01,10,11. This gives a scalar, then 2 vectors then a bivector.

We can also do that with Clifford algebras based on 3D vectors, in which case we get the following order:

000 001 010 011 100 101 110 111
e e1 e2 e12 e3 e13 e23 e123
scalar vector vector bivector vector bivector bivector trivector

This bit order has a lot of advantages, but it also has disadvantages, in that it mixes up the vectors with the bivectors. If we want to keep all the vectors together and all the bivectors together in scalar, vector, bivector, trivector order then we need to modify the order slightly:

000 001 010 100 011 -101 110 111
e e1 e2 e3 e12 e31 e23 e123
scalar vector vector vector bivector bivector bivector trivector

There are advantages to both of these:

So unfortunately we will need to use both of these orderings on this site, therefore please be sure to check which is being used. The Cayley tables for both types are:

bit order blade order
a*b b.e b.e1 b.e2 b.e12 b.e3 b.e13 b.e23 b.e123
a.e e e1 e2 e12 e3 e13 e23 e123
a.e1 e1 e e12 e2 e13 e3 e123 e23
a.e2 e2 -e12 e -e1 e23 -e123 e3 -e13
a.e12 e12 -e2 e1 -e e123 -e23 e13 -e3
a.e3 e3 -e13 -e23 e123 e -e1 -e2 e12
a.e13 e13 -e3 -e123 e23 e1 -e -e12 e2
a.e23 e23 e123 -e3 -e13 e2 e12 -e -e1
a.e123 e123 e23 -e13 -e3 e12 e2 -e1 -e
a*b b.e b.e1 b.e2 b.e3 b.e12 b.e31 b.e23 b.e123
a.e e e1 e2 e3 e12 e31 e23 e123
a.e1 e1 e e12 -e31 e2 -e3 e123 e23
a.e2 e2 -e12 e e23 -e1 e123 e3 e31
a.e3 e3 e31 -e23 e e123 e1 -e2 e12
a.e12 e12 -e2 e1 e123 -e e23 -e31 -e3
a.e31 e31 e3 e123 -e1 -e23 -e e12 -e2
a.e23 e23 e123 -e3 e2 e31 -e12 -e -e1
a.e123 e123 e23 e31 e12 -e3 -e2 -e1 -e

Further Issues for Blade Order

The bases are the vectors e1, e2 and e3, however the higher level products such as e2^e3, e1^e3 and e1^e2 is also as a basis for the bivectors.

The question is what order do we choose for this (which is equivalent to saying what sign do we use since e1^e2=-e2^e1).

The methodology used for choosing the order of these indexes is explained here.

We calculate the bivector by drawing the matrix formed by putting the basis vectors side-by-side, then taking its minor by removing the row associated with its own coordinate type and removing the column of the basis vector not associated with.

We have to be very careful with signs as the sign alternates with terms as follows:

e1x

e2x

e3x

e1y

e2y

e3y

e1z

e2z

e3z

=e1x

e2y

e3y

e2z

e3z

-e2x

e1y

e3y

e1z

e3z

+e3x

e1y

e2y

e1z

e2z

To choose bivectors for 3D multivectors we start with the psudoscalar e1^e2^e3 which represents the whole determinant. We then split it up, taking into account the sign, as above:

e1^e2^e3 = e1 * e2^e3 - e2 * e1^e3 + e3 * e1^e2

Where the sign is negative then we invert the order, which gives the basis bivectors as follows:

Do the basis vectors square to +ve, -ve or zero?

Lets try out the following combinations:

category   isomorphic to
G 3,0,0 Vectors square to +ve.  
G+ 3,0,0 Even subalgebra quaternions
G 0,3,0 Vectors square to -ve.  
G 0,0,3 Vectors square to zero.  

The multiplication table for each of these is derived below:

Vectors square to +ve: G 3,0,0

This corresponds to normal 3 dimensional space. It can be fully defined by the multiplication table as follows:

a*b b.e b.e1 b.e2 b.e3 b.e12 b.e31 b.e23 b.e123
a.e e e1 e2 e3 e12 e31 e23 e123
a.e1 e1 e e12 -e31 e2 -e3 e123 e23
a.e2 e2 -e12 e e23 -e1 e123 e3 e31
a.e3 e3 e31 -e23 e e123 e1 -e2 e12
a.e12 e12 -e2 e1 e123 -e e23 -e31 -e3
a.e31 e31 e3 e123 -e1 -e23 -e e12 -e2
a.e23 e23 e123 -e3 e2 e31 -e12 -e -e1
a.e123 e123 e23 e31 e12 -e3 -e2 -e1 -e

how these results were generated.

As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: non-equal vector bases anti-commute and equal vector bases square to scalars (+,- or 0 as required). We could have done this manually as follows:

e1 e1 = 1
e2 e2 = 1
e2 e2 = 1

because we have chosen to let vectors square to a positive scalar value.

e1 e2 = e12
e2 e1 = -e12

e2 e3 = e23
e3 e2 = -e23

e3 e1 = e31
e1 e3 = -e31

because we need vector multiplication to anticommute so that the vectors will cancel out when a general vector is squared: (a e1 + b e2+ c e3)2 = a2 + b2+ c2.

e1 e12 = e2
e1 e31 = -e1 e13 = -e3
e1 e23 = e123
e1 e123 = e23

e2 e12 = -e1
e2 e31 = -e2 e13 = e123
e2 e23 = e3
e2 e123 = -e13= e31

e3 e12 = -e132= e123
e3 e31 = e1
e3 e23 = -e233= -e2
e3 e123 = -e1323= e12

these are derived from the results above using these rules.

e12 e1 = -e2
e31 e1 = e3
e23 e1 = -e213= e123
e123 e1 = -e1213 = e23

e12 e2 = e1
e31 e2 = -e132 = e123
e23 e2 = -e3
e123 e2 = -e13= e31

e12 e3 = e123
e31 e3 = -e1
e23 e3 = e2
e123 e3 = e12

these are derived from the results above using these rules.

e12 e12 = -e1221= -1
e12 e31 = e2113= e23
e12 e23 = e13= -e31
e12 e123 = -e21123 = -e3

e31 e12 = e32= -e23
e31 e31 = -e1331= -1
e31 e23 = e1332= e12
e31 e123 = e323 = -e2

e23 e12 = e3221= e31
e23 e31 = e21= -e12
e23 e23 = -e2332= -1
e23 e123 = e23312 = e212 = -e1

these are derived from the results above using these rules.

e123 e12 = e13221= e131= -e3
e123 e31 = e121= -e2
e123 e23 = -e12332= -e1
e123 e123 = -e123 e132= e123 e312= -e123 e321= -1

 

Even Subalgebra of G 3,0,0 (quaternion): G+ 3,0,0

To take the even sub-algebra we take the even grades: 0=scalars, 2=bivectors and remove the other grades to give:

a*b b.e b.e12 b.e31 b.e23
a.e e e12 e31 e23
a.e12 e12 -e e23 -e31
a.e31 e31 -e23 -e e12
a.e23 e23 e31 -e12 -e

how these results were generated.

This is the algebra of quaternions where:

Vectors square to -ve: G 0,3,0

This can be fully defined by the multiplication table as follows:

a*b b.e b.e1 b.e2 b.e3 b.e12 b.e31 b.e23 b.e123
a.e e e1 e2 e3 e12 e31 e23 e123
a.e1 e1 -e e12 -e31 -e2 e3 e123 -e23
a.e2 e2 -e12 -e e23 e1 e123 -e3 -e31
a.e3 e3 e31 -e23 -e e123 -e1 e2 -e12
a.e12 e12 e2 -e1 e123 -e -e23 e31 -e3
a.e31 e31 -e3 e123 e1 e23 -e -e12 -e2
a.e23 e23 e123 e3 -e2 -e31 e12 -e -e1
a.e123 e123 -e23 -e31 -e12 -e3 -e2 -e1 e

how these results were generated.

As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: non-equal vector bases anti-commute and equal vector bases square to scalars (+,- or 0 as required). We could have done this manually as follows:

e1 e1 = -1
e2 e2 = -1
e2 e2 = -1

because we have chosen to let vectors square to a negitive scalar value.

e1 e2 = e12
e2 e1 = -e12

e2 e3 = e23
e3 e2 = -e23

e3 e1 = e31
e1 e3 = -e31

because we need vector multiplication to anticommute so that the vectors will cancel out when a general vector is squared: (a e1 + b e2+ c e3)2 = -a2 - b2- c2.

e1 e12 = -e2
e1 e31 = -e1 e13 = e3
e1 e23 = e123
e1 e123 = -e23

e2 e12 = e1
e2 e31 = -e2 e13 = e123
e2 e23 = -e3
e2 e123 = e13= -e31

e3 e12 = -e132= e123
e3 e31 = -e1
e3 e23 = -e233= e2
e3 e123 = -e1323= -e12

these are derived from the results above using these rules.

e12 e1 = e2
e31 e1 = -e3
e23 e1 = -e213= e123
e123 e1 = -e1213 = -e23

e12 e2 = -e1
e31 e2 = -e132 = e123
e23 e2 = e3
e123 e2 = e13= -e31

e12 e3 = e123
e31 e3 = e1
e23 e3 = -e2
e123 e3 = -e12

these are derived from the results above using these rules.

e12 e12 = -e1221= -1
e12 e31 = e2113= -e23
e12 e23 = -e13= e31
e12 e123 = -e21123 = -e3

e31 e12 = -e32= e23
e31 e31 = -e1331= -1
e31 e23 = e1332= -e12
e31 e123 = -e323 = -e2

e23 e12 = e3221= -e31
e23 e31 = -e21= e12
e23 e23 = -e2332= -1
e23 e123 = e23312 = -e212 = -e1

these are derived from the results above using these rules.

e123 e12 = e13221= -e131= -e3
e123 e31 = -e121= -e2
e123 e23 = -e12332= -e1
e123 e123 = -e123 e132= e123 e312= -e123 e321= +1

 

Vectors square to 0: G 0,0,3

This can be fully defined by the multiplication table as follows:

a*b b.e b.e1 b.e2 b.e3 b.e12 b.e31 b.e23 b.e123
a.e e e1 e2 e3 e12 e31 e23 e123
a.e1 e1 0 e12 -e31 0 0 e123 0
a.e2 e2 -e12 0 e23 0 e123 0 0
a.e3 e3 e31 -e23 0 e123 0 0 0
a.e12 e12 0 0 e123 0 0 0 0
a.e31 e31 0 e123 0 0 0 0 0
a.e23 e23 e123 0 0 0 0 0 0
a.e123 e123 0 0 0 0 0 0 0

how these results were generated.

As the above link explains, the table was generated by a computer program from the laws of vector algebra, that is: non-equal vector bases anti-commute and equal vector bases square to scalars (+,- or 0 as required). We could have done this manually as follows:

e1 e1 = 0
e2 e2 = 0
e2 e2 = 0

because we have chosen to let vectors square to zero.

e1 e2 = e12
e2 e1 = -e12

e2 e3 = e23
e3 e2 = -e23

e3 e1 = e31
e1 e3 = -e31

because we need vector multiplication to anticommute so that the vectors will cancel out when a general vector is squared: (a e1 + b e2+ c e3)2 =0.

e1 e12 =0
e1 e31 = 0
e1 e23 = e123
e1 e123 = 0

e2 e12 = 0
e2 e31 = -e2 e13 = e123
e2 e23 = 0
e2 e123 = 0

e3 e12 = -e132= e123
e3 e31 = 0
e3 e23 = 0
e3 e123 = 0

these are derived from the results above using these rules.

e12 e1 = 0
e31 e1 = 0
e23 e1 = -e213= e123
e123 e1 = 0

e12 e2 = 0
e31 e2 = -e132 = e123
e23 e2 = 0
e123 e2 =0

e12 e3 = e123
e31 e3 = 0
e23 e3 = 0
e123 e3 = 0

these are derived from the results above using these rules.

e12 e12 = 0
e12 e31 = 0
e12 e23 =0
e12 e123 = 0

e31 e12 = 0
e31 e31 = 0
e31 e23 = 0
e31 e123 = 0

e23 e12 = 0
e23 e31 = 0
e23 e23 = 0
e23 e123 = 0

these are derived from the results above using these rules.

e123 e12 = 0
e123 e31 = 0
e123 e23 = 0
e123 e123 = 0 e123 e312= -e123 e321= 0

 

Further Reading


metadata block
see also:

 

Correspondence about this page

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.

flag flag flag flag flag flag 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.

 

Terminology and Notation

Specific to this page here:

 

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2017 Martin John Baker - All rights reserved - privacy policy.