# Maths - 1D Euclidean Space - Outer Product

Here we will use the definition of outer product as the values in the geometric product table such that : if gradeof(row)+gradeof(column) != gradeof(entry) then the entry is set to zero otherwise the entry is the same as the geometric product. Where a table entry is the sum of terms then this check is done on each term separately. For more information about the concept of an outer product see this page.

I can think of two ways of calculating the outer product for this null vector basis:

• Generate the geometric table for the null basis (as explained on this page), then set terms to zero depending on the sum of the grades as explained above (or equivitently set term to zero if operands contain a common basis term).
• Start with the outer product of e1,e2 and e3 then rotate the basis vectors to give null basis vectors.

I'm not sure if these methods are equivalent? So we will use the first method but do some tests to see if the second method is equivalent.

### 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

## The outer product of two null vectors

Lets take x1 in Euclidean space, this gives,

P=(-n0+ x1² n + 2 x1 n1)

and we want to take the inner product with x2:

Q=(-n0+ x2² n + 2 x2 n1)

So the outer product is the scalar+bivector

P^Q = (-n0+ x1² n + 2 x1 n1)^(-n0+ x2² n + 2 x2 n1)
P^Q = n0^n0- x2² n0^n - 2 x2 n0^n1 - x1² n^n0+ x2² x1² n^n + 2 x2 x1² n^n1-2 x1 n1^n0+ x2² 2 x1 n1^n + 2 x2 2 x1 n1^n1

P^Q = 1 - 2 x2² n0 - 2 x2 n01 +2 x1² n0∞ + 2 x2 x1² n1+2 x1 n01- x2² 2 x1n∞1

P^Q = 1 + 2 (x1² - x2² )n0 + 2 (x1-x2 ) n01+ 2 x2 x1(x1-x2) n1

so the inner product of two points is a scalar value+bivector.

## Meet

### Two Points

In the above example, if x2 = x1 then:

P^Q = 1

## Investigation of alternative way to calculate inner product

The outer product for the conventional 'e' basis is represented by the following table (if an index occors more than one in the term then the term is zero):

• e1 and e3 square to positive
• e2 squares to negative
 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

We will then use this to derive the outer 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 n0∞ -1/2 n0/2 n01 0 n0∞1-n1/2 n01/2 a.n∞ n∞ -n0∞+ 1/2 0 n∞/2 n∞1 -n0∞1+n1/2 0 n∞1/2 a.n0∞ n0∞ n0/2 n∞/2 n0∞-1/4 n0∞1 n01/2 n∞1/2 n0∞1-n1/2 a.n1 n1 -n01 -n∞1 n0∞1 0 0 0 0 a.n01 n01 0 -n0∞1+n1/2 n01/2 0 0 0 0 a.n∞1 n∞1 n0∞1-n1/2 0 n∞1/2 0 0 0 0 a.n0∞1 n0∞1 n01/2 n∞1/2 n0∞1-n1/2 0 0 0 0

Each term in this table is calculated from:
n0= (e1 + e2)/2
n= (e1 - e2)/2
n1= e3

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 outer product of two null vectors

Lets take x1 in Euclidean space, this gives,

p=(-1,x1²,x1)

and we want to take the inner product with x2:

q=(-1,x2²,x2)

So the outer product is the bivector:

scalar = (x1² - x2²)/2
n0∞ = x2² - x1²
n01 = x1 - x2
n∞1 = x1²x2 - x2²x1 = x1x2(x1 - x2)

## Meet

### Two Points

In the above example if x1=x2 (and only if x1=x2) then:

scalar = 0
n0∞ = 0
n01 = 0
n∞1 = 0

So this gives us a way to test if x1 and x2 represent the same point since, if they do then,

p^q=0

This may not be specially useful in one dimensional Euclidean space but when we go to higher dimensions it will allow us to test if, a point lies on a line or a plane, or two lines intersect for example.

### Two Points and Single Point

Above we calculated the outer product of two points p and q to give:

 scalar n0∞ n01 n∞1
=
 (x1² - x2²)/2 x2² - x1² x1 - x2 x1x2(x1 - x2)

r=(-1,x3²,x3)

 n0 n∞ n1
=
 -1 x3² x3

So using the following table and multipling out the terms:

 a^b b.n0 -1 b.n∞ x3² b.n1 x3 a.n =(x1² - x2²)/2 n0 n∞ n1 a.n0∞=x2² - x1² n0/2 n∞/2 n0∞1 a.n01=x1 - x2 0 -n0∞1+n1/2 0 a.n∞1=x1x2(x1 - x2) n0∞1-n1/2 0 0

(p^q)^r =

 n0 n∞ n1 n0∞1
=
 -(x1² - x2²)/2 - (x2² - x1²)/2 =0 (x1² - x2²)x3²/2 +(x2² - x1²)x3²/2 = 0 (x1² - x2²)x3/2 + (x1 - x2)x3²/2+x1x2(x1 - x2)/2 =(x1²x3 - x2²x3)/2 + (x1 - x2)(x3²+x1x2)/2 =(x1²x3 - x2²x3+x1x3²+x1²x2- x2x3²-x1x2²)/2 (x2² - x1²)x3 - (x1 - x2)x3² - x1x2(x1 - x2) = x2²x3 - x1²x3 - x1x3² + x2x3² - x1²x2 + x1x2²

If x3 = x1 we get:

 n0 n∞ n1 n0∞1
=
 0 0 (x1²x1 - x2²x1+x1x1²+x1²x2- x2x1²-x1x2²)/2 =(2*x1²x1 - 2*x2²x1)/2 =x13 - x2²x1 x2²x1 - x1²x1 - x1x1² + x2x1² - x1²x2 + x1x2² =2*x2²x1 - 2*x13

If x3 = x2 we get:

 n0 n∞ n1 n0∞1
=
 0 0 (x1²x2 - x2²x2+x1x2²+x1²x2- x2x2²-x1x2²)/2 = (2*x1²x2 - 2*x2²x2)/2 = x1²x2 - x23 x2²x2 - x1²x2 - x1x2² + x2x2² - x1²x2 + x1x2² =2*x23 - 2*x1²x2

If we normalise to set n0= -1 this will give n1 = ∞ with an additional n0∞1 component. I don't know how to interpret this? perhaps If x1≠x2 then meet will not be zero for any x3

### Join

So instead try join: (p^q)•r by multiplying out the following terms:

 a•b b.n0 -1 b.n∞ x3² b.n1 x3 a.n =(x1² - x2²)/2 n0 n∞ n1 a.n0∞=x2² - x1² n0 0 n1/2 a.n01=x1 - x2 -n1/2 0 n0 a.n∞1=x1x2(x1 - x2) 0 -n1/2 n∞

(p^q)•r =

 n0 n∞ n1
=
 -(x1² - x2²)/2 -(x2² - x1²)+(x1 - x2)x3 = (x1² - x2²)/2 +(x1 - x2)x3 (x1² - x2²)x3²/2 + x1x2x3(x1 - x2) (x1² - x2²)x3/2 +(x2² - x1²)x3/2 +(x1 - x2)/2-x1x2x3²(x1 - x2)/2 =(x1 - x2)/2-x1x2x3²(x1 - x2)/2

If x3 = x1 we get:

 n0 n∞ n1
=
 (x1² - x2²)/2 +(x1 - x2)x1 =x1²/2 - x2²/2 +x1² - x2x1 (x1² - x2²)x1²/2 + x1x2x1(x1 - x2) =x1²x1²/2 - x2²x1²/2 + x1x2x1x1 - x2²x1² (x1 - x2)/2-x1x2x1²(x1 - x2)/2 =(x1 - x2)/2-x1x2x1²x1/2 - x1x2x1²x2/2

If x3 = x2 we get:

 n0 n∞ n1
=
 (x1² - x2²)/2 +(x1 - x2)x2 =(x1² - x2²)/2 + x1x2 - x2² x1²x2²/2 - x2²x2²/2 + x1²x2² - x1x2x2² = x2²(1.5*x1² - x2²/2 - x1x2x) (x1 - x2)/2-x1x2x2²(x1 - x2)/2 =(x1 - x2)/2-x1²x2x2²/2 + x1x2²x2²/2

If we normalise so n0= -1 this will give:

 n0 n∞ n1
=
 -1 x1²x2²/2 - x2²x2²/2 + x1²x2² - x1x2x2² = x2²(1.5*x1² - x2²/2 - x1x2x) / (x1² - x2²)/2 + x1x2 - x2² (x1 - x2)/2-x1x2x2²(x1 - x2)/2 =(x1 - x2-x1²x2x2² + x1x2²x2²)/ x1² - x2² + 2*x1x2 - 2*x2²

I'm sure about the definition of • so this needs checking

### Line

Above we calculated the outer product of two points p and q to give:

 scalar n0∞ n01 n∞1
=
 (x1² - x2²)/2 x2² - x1² x1 - x2 x1x2(x1 - x2)

∞=n

So using the following table and multipling out the terms:

 a^b b.n∞ a.n =(x1² - x2²)/2 n∞ a.n0∞=x2² - x1² n∞/2 a.n01=x1 - x2 -n0∞1+n1/2 a.n∞1=x1x2(x1 - x2) 0

(p^q)^∞ =

 n0 n∞ n1 n0∞1
=
 0 (x1² - x2²)/2 +(x2² - x1²)/2 = 0 (x1 - x2)/2 -(x1 - x2)

If we normalise to set n0= -1 this will give n1 = ∞ with an additional n0∞1 component. I don't know how to interpret this?

## Expansion of Outer 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:

 scalar n vector n0 n∞ n1 bivector n0∞ n01 n∞1 tri-vector n0∞1
 scalar n vector n0 n∞ n1 bivector n0∞ n01 n∞1 tri-vector n0∞1
=
 scalar n vector n0 n∞ n1 bivector n0∞ n01 n∞1 tri-vector n0∞1

## Derivation of Outer Prodict Table for Null Basis

 a^b b.n (e1+e2)/2b.n0 (e1-e2)/2b.n∞ (1-e12)/2 b.n0∞ e3b.n1 (e13+e23)/2 b.n01 (e13-e23)/2 b.n∞1 (e3-e123)/2b.n0∞1 a.n 1 n0 n∞ n0∞ n1 n01 n∞1 n0∞1 (e1+e2)/2a.n0 n0 (e11+e12+e21+e22)/4 =0 (e11-e12+e21-e22)/4 =-e12/2 =n0∞ - 1/2 (e1+e2-e112-e212)/4 =(e1+e2)/4 =n0/2 (e13+e23)/2 =n01 (e113+e123+e213+e223)/4 =0 (e113-e123+e213-e223)/4 =-e123/2 =n0∞1-n1/2 (e13+e23-e1231-e2123)/4 =n01/2 (e1-e2)/2 a.n∞ n∞ (e11+e12-e21-e22)/4 =e12/2 = -n0∞+ 1/2 (e11-e12-e21+e22)/4 =0 (e1-e2-e112+e212)/4 =(e1-e2)/4 =n∞/2 (e13-e23)/2 =n∞1 (e113+e123-e213-e223)/4 =e123/2 =-n0∞1+n1/2 (e113-e123-e213+e223)/4 =0 (e13-e23-e1231+e2123)/4 =n∞1/2 (1-e12)/2a.n0∞ n0∞ (e1+e2-e121-e122)/4 =(e1+e2)/4 =n0/2 (e1-e2-e121+e122)/4 =(e1-e2)/4 =n∞/2 (1-e12-e12+e1212)/4 =n0∞-1/4 (e3-e123)/2 =n0∞1 (e13+e23-e1213-e1223)/4 =(e13+e23)/4 =n01/2 (e13-e23-e1213+e1223)/4 =(e13-e23)/4 =n∞1/2 (e3-e123-e123+e12123)/4 =n0∞1-n1/2 e3a.n1 n1 (-e13-e23)/2 = -n01 (-e13+e23)/2 = -n∞1 (e3-e123)/2 =n0∞1 0 0 0 0 (e13+e23)/2a.n01 n01 (e131+e132+e231+e232)/4 =0 (e131-e132+e231-e232)/4 =2e123/4 =-n0∞1+n1/2 (e13+e23-e1312-e2312)/4 =(e13+e23)/4 =n01/2 0 0 0 0 (e13-e23)/2a.n∞1 n∞1 (e131+e132-e231-e232)/4 =-e123/2 =n0∞1-n1/2 (e131-e132-e231+e232)/4 =0 (e13-e23-e1312+e2312)/4 =(e13-e23)/4 =n∞1/2 0 0 0 0 (e3-e123)/2 a.n0∞1 n0∞1 (e31+e32+e1231+e1232)/4 =n01/2 (e31-e32+e1231-e1232)/4 =n∞1/2 (e3-e123-e312+e12312)/4 =n0∞1-n1/2 0 0 0 0