There are different ways to extend the dot product from vectors to the inner product of bivectors and all our basis. Here we will use the version represented by the following table:
- e1 and e3 square to positive
- e2 squares to negative
a•b |
b.e | b.e1 | b.e2 | b.e12 | b.e3 | b.e13 | b.e23 | b.e123 |
a.e | 1 | e1 | e2 | e12 | e3 | e13 | e23 | e123 |
a.e1 | e1 | 1 | 0 | e2 | 0 | e3 | 0 | e23 |
a.e2 | e2 | 0 | -1 | e1 | 0 | 0 | -e3 | e13 |
a.e12 | e12 | -e2 | -e1 | 1 | 0 | 0 | 0 | e3 |
a.e3 | e3 | 0 | 0 | 0 | 1 | -e1 | -e2 | e12 |
a.e13 | e13 | -e3 | 0 | 0 | e1 | -1 | 0 | e2 |
a.e23 | e23 | 0 | -e3 | 0 | e2 | 0 | 1 | e1 |
a.e123 | e123 | e23 | e13 | e3 | e12 | e2 | e1 | 1 |
We will then use this to derive the inner product table for our null vector basis.
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 | 1/2 | 0 | 0 | 0 | n1/2 | -n01/2 |
a.n∞ | n∞ | 1/2 | 0 | n∞ | 0 | n1/2 | 0 | n∞1/2 |
a.n0∞ | n0∞ | n0 | 0 | n0∞ | n1/2 | n01/2 | n∞1/2 | n0∞1/2 +n1/4 |
a.n1 | n1 | 0 | 0 | n1/2 | 1 | -n0 | -n∞ | n0∞ |
a.n01 | n01 | -n1/2 | 0 | n01/2 | n0 | 0 | -1/2 | 0 |
a.n∞1 | n∞1 | 0 | -n1/2 | n0∞/2 | n∞ | -1/2 | 0 | n∞/2 |
a.n0∞1 | n0∞1 | -n01/2 | n∞1/2 | n0∞1/2 +n1/4 | n0∞ | -n0 | 0 | n0∞ |
Each term in this table is calculated from:
n0= (e1 + e2)/2
n∞= (e1 - e2)/2
n1= e3
Unlike when we were calculating the geometric product table the bivector and higher terms are not generated by the dot product so we have to assume they have already been generated by the outer product to give:
n0∞ = (1-e12)/2
n01= (e13+e23)/2
n∞1 = (e13-e23)/2
n0∞1= (e3-e123)/2
So we just multiply out each term by converting to 'e' basis, doing inner product, then converting back to 'n' basis (see full working at the end of this page).
The inner product of two null vectors
Lets take the point 'p' (x1,y1) in Euclidean space, this gives,
p=(-1,x1²+y1²,x1,y1)
and we want to take the inner product with q:
q=(-1,x2²+y2²,x2,y2)
So the inner product is the scalar:
inner product=1-x1²/2 -x2²/2 + x1x2
if p and q represent the same point then:
p•q = 1
Expansion of Inner Product
Note: work in progress ignore the following:
Our multiplcaition 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: