Summary of Results
We will derive the multiplication table for geometric product below, also how to calculate the inverse and transform using sandwich product. We will derive the multiplication table for outer product on this page and inner product on this page.
But first, here are the multipication tables for 1D Euclidean Space:
table for: Geometric Product
a*b | b.1 | b.n0 | b.n∞ | b.n0∞ | b.n1 | b.n01 | b.n∞1 | b.n0∞1 |
a.1 | 1 | n0 | n∞ | n0∞ | n1 | n01 | n∞1 | n0∞1 |
a.n0 | n0 | 0 | n0∞*2 | 0 | n01 | 0 | n0∞1*2 | 0 |
a.n∞ | n∞ |
4-n0∞*2 | 0 | n∞*2 | n∞1 | n1*4-n0∞1*2 | 0 | n∞1*2 |
a.n0∞ | n0∞ | n0*2 | 0 | n0∞*2 | n0∞1 | n01*2 | 0 | n0∞1*2 |
a.n1 | n1 | -n01 | -n∞1 | n0∞1 | 1 | -n0 | -n∞ | n0∞ |
a.n01 | n01 | 0 | -n0∞1*2 | 0 | n0 | 0 | -n0∞*2 | 0 |
a.n∞1 | n∞1 | -n1*4+n0∞1*2 | 0 | n∞1*2 | n∞ | -1*4+n0∞*2 | 0 | n∞*2 |
a.n0∞1 | n0∞1 | -n01*2 | 0 | n0∞1*2 | n0∞ | -n0*2 | 0 | n0∞*2 |
table for: Outer Product
a*b | b.1 | b.n0 | b.n∞ | b.n0∞ | b.n1 | b.n01 | b.n∞1 | b.n0∞1 |
a.1 | 1 | n0 | n∞ | n0∞ | n1 | n01 | n∞1 | n0∞1 |
a.n0 | n0 | 0 | n0∞*2 | 0 | n01 | 0 | n0∞1*2 | 0 |
a.n∞ | n∞ | -n0∞*2 | 0 | 0 | n∞1 | -n0∞1*2 | 0 | 0 |
a.n0∞ | n0∞ | 0 | 0 | 0 | n0∞1 | 0 | 0 | 0 |
a.n1 | n1 | -n01 | -n∞1 | n0∞1 | 0 | 0 | 0 | 0 |
a.n01 | n01 | 0 | -n0∞1*2 | 0 | 0 | 0 | 0 | 0 |
a.n∞1 | n∞1 | n0∞1*2 | 0 | 0 | 0 | 0 | 0 | 0 |
a.n0∞1 | n0∞1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
table for: Inner Product
a*b | b.1 | b.n0 | b.n∞ | b.n0∞ | b.n1 | b.n01 | b.n∞1 | b.n0∞1 |
a.1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a.n0 | n0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a.n∞ | n∞ | 1*4 | 0 | 0 | 0 | 0 | 0 | 0 |
a.n0∞ | n0∞ | n0*2 | 0 | 0 | 0 | 0 | 0 | 0 |
a.n1 | n1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
a.n01 | n01 | 0 | 0 | 0 | n0 | 0 | 0 | 0 |
a.n∞1 | n∞1 | -n1*4 | 0 | 0 | n∞ | -1*4 | 0 | 0 |
a.n0∞1 | n0∞1 | -n01*2 | 0 | 0 | n0∞ | -n0*2 | 0 | 0 |
Multiplication
Here we will derive a general expression for multiplication using the following table:
a*b |
b.n |
b.n0 |
b.n∞ |
b.n0∞ |
b.n1 |
b.n01 |
b.n∞1 |
b.n0∞1 |
a.n |
1 |
n0
|
n∞ |
n0∞ |
n1 |
n01 |
n∞1 |
n0∞1 |
a.n0 |
n0 |
0 |
n0∞ |
0 |
n01 |
0 |
n0∞1 |
0 |
a.n∞ |
n∞ |
1-n0∞ |
0 |
n∞ |
n∞1 |
n1-n0∞1 |
0 |
n∞1 |
a.n0∞ |
n0∞ |
n0 |
0 |
n0∞ |
n0∞1 |
n01 |
0 |
n0∞1 |
a.n1 |
n1 |
-n01 |
-n∞1 |
n0∞1 |
1 |
-n0 |
-n∞ |
n0∞ |
a.n01 |
n01 |
0 |
-n0∞1 |
0 |
n0 |
0 |
-n0∞ |
0 |
a.n∞1 |
n∞1 |
n0∞1-n1 |
0 |
n∞1 |
n∞ |
n0∞-1 |
0 |
n∞ |
a.n0∞1 |
n0∞1 |
-n01 |
0 |
n0∞1 |
n0∞ |
-n0 |
0 |
n0∞ |
Our multiplcaitiom is represented by:
c=a*b
Where a, b and c are multivectors which may contain scalar, vector and bivector and trivector components.
so multiplying out all the components gives:
(an an+an0 an0+an∞ an∞+an0 an1+an0∞ an0∞+an01 an01+an∞1 an∞1+an0∞1 an0∞1)*
(bn b n+bn0 bn0+bn∞ bn∞+bn1 bn1+bn0∞ b n0∞+bn01 b n01+bn∞1 b n∞1+bn0∞1 bn0∞1)
The result is:
cn=an*bn + an0*bn1 + an0*bn∞ - an∞1*bn01
cn0=an*bn0 + an0*bn + an0∞*bn0- an0*bn01+ an01*bn1- an0∞1*bn01
cn∞=an*bn∞ + an∞*bn + an∞*bn0∞ - an0*bn∞1+ an∞1*bn1 + an∞1*bn0∞1
cn1=an*bn1 + an0*bn+ an∞*bn01- an∞1*bn0
cn0∞=an*bn0∞+an0*bn∞-an∞*bn0+an0∞*bn+an0∞*bn0∞+an0*bn0∞1-an01*bn∞1+an∞1*bn01+an0∞1*bn1+an0∞1*bn0∞1
cn01=an*bn01+an0*bn1+an0∞*bn01-an0*bn0+an01*bn-an0∞1*bn0
cn∞1=an*bn∞1+an∞*bn1+an∞*bn0∞1-an0*bn∞+an∞1*bn+an∞1*bn0∞
cn0∞1=an*bn0∞1+an0*bn∞1-an∞*bn01+an0∞*bn1+an0*bn0∞-an01*bn∞+an∞1*bn0+an0∞1*bn
Multivector Calculator
The following calculator allows you to calculate the multivector arithmetic of our rotated basis. Enter the values into the top two multivectors and then press "+ - or * " to display the result in the bottom multivector:
Inverse
With geometric algebra we cannot guarantee that the inverse of any multivector exists. So here we will concentrate on the even subalgebra, to do this we will follow the usual trick of multiplying numerator and denominator by the reversal (similar concept to conjugate). See this page for explanation of these terms.
So we want to find the inverse of:
an an+an0∞ an0∞+an01 an01+an∞1 an∞1
the result is:
a-1= (an an-an0∞ an0∞-an01 an01-an∞1 an∞1)/(an² + an*an0∞ + an∞1*an01)
This is calculated by multiplying numerator and denominator by the reverse. The reverse is:
an an+an0∞(1-an0∞) -an01 an01-an∞1 an∞1
multiplying these gives:
cn=an*bn - an∞1*bn01
cn0=0
cn∞=0
cn1=0
cn0∞=an*bn0∞+an0∞*bn+an0∞*bn0∞-an01*bn∞1+an∞1*bn01
cn01=an*bn01+an0∞*bn01+an01*bn
cn∞1=an*bn∞1+an∞1*bn+an∞1*bn0∞
cn0∞1=0
substituting the reverse for the 'b' terms gives:
cn=an*(an+an0∞) + an∞1*an01
cn0=0
cn∞=0
cn1=0
cn0∞= -an*an0∞+an0∞*(an+an0∞)-an0∞*an0∞+an01*an∞1-an∞1*an01
cn01= -an*an01-an0∞*an01+an01*(an+an0∞)
cn∞1= -an*an∞1+an∞1*(an+an0∞)-an∞1*an0∞
cn0∞1=0
expanding out:
cn= an*an + an*an0∞ + an∞1*an01
cn0∞= -an*an0∞+an0∞*an+an0∞*an0∞-an0∞*an0∞+an01*an∞1-an∞1*an01
cn01= -an*an01-an0∞*an01+an01*an+an01*an0∞
cn∞1= -an*an∞1+an∞1*an+an∞1*an0∞-an∞1*an0∞
and cancelling out:
cn= an*an + an*an0∞ + an∞1*an01
cn0∞= 0
cn01= 0
cn∞1= 0
which gives the pure scalar: an*an + an*an0∞ + an∞1*an01
Transform using Sandwich Product
Transforms using sandwich product
c=a*b* †a
Where:
- a, b and c are multivectors
- †a is the conjugate of a
Note: the difference between the conjugate and the inverse is just a scalar multiplier which does not alter the transform represented.
In order to simplify things we will restrict a to (1 + t n∞1) because all transforms are represented by the even subalgebra and also we will set the n0∞ and n01components to zero because rotation is not applicable.
Simarly we will restrict b to (-n0+ u² n∞ + u n1) this ensures that our points are represented by null vectors.
So multiplying out all the components gives:
(1 + t n∞1)(-n0+ u² n∞ + u n1)(1 - t n∞1)
Multipliying first two terms first (the order does not matter because this algebra is associative):
=(-n0+ u² n∞ + u n1 - t (n∞1n0)+ tu² (n∞1n∞)+ tu (n∞1n1))(1 - t n∞1)
=(-n0+ u² n∞ + u n1 - t (n0∞1-n1)+ tu² (0)+ tu (n∞))(1 - t n∞1)
=(-n0+ (u²+tu) n∞ + (u+t) n1 - t n0∞1)(1 - t n∞1)
=-n0+ (u²+tu) n∞ + (u+t) n1 - t n0∞1 + t (n0n∞1) - (u²+tu)t(n∞n∞1) - (u+t) t (n1n∞1) + t² (n0∞1n∞1)
=-n0+ (u²+tu) n∞ + (u+t) n1 - t n0∞1 + t (n0∞1) - (u²+tu)t(0) - (u+t) t (-n∞) + t² (0)
=-n0+ (u²+tu+ut+t²) n∞ + (u+t) n1
=-n0+ (u+t)² n∞ + (u+t) n1
which represents a point at (u+t).
This site may have errors. Don't use for critical systems.