# Maths - Calculations 2D Euclidean Space

## Multiplication

Doubling up the table for the 1D case (this page) by adding the additinal basis n2 which squares to positive:

 a*b b.1 b.n0 b.n∞ b.n0∞ b.n1 b.n01 b.n∞1 b.n0∞1 b.n2 b.n02 b.n∞2 b.n0∞2 b.n12 b.n012 b.n∞12 b.n0∞12 a.1 1 n0 n∞ n0∞ n1 n01 n∞1 n0∞1 n2 n02 n∞2 n0∞2 n12 n012 n∞12 n0∞12 a.n0 n0 0 n0∞*2 0 n01 0 n0∞1*2 0 n02 0 n0∞2*2 0 n012 0 n0∞12*2 0 a.n∞ n∞ 1*4-n0∞*2 0 n∞*2 n∞1 n1*4-n0∞1*2 0 n∞1*2 n∞2 n2*4-n0∞2*2 0 n∞2*2 n∞12 n12*4-n0∞12*2 0 n∞12*2 a.n0∞ n0∞ n0*2 0 n0∞*2 n0∞1 n01*2 0 n0∞1*2 n0∞2 n02*2 0 n0∞2*2 n0∞12 n012*2 0 n0∞12*2 a.n1 n1 -n01 -n∞1 n0∞1 1 -n0 -n∞ n0∞ n12 -n012 -n∞12 n0∞12 n2 -n02 -n∞2 n0∞2 a.n01 n01 0 -n0∞1*2 0 n0 0 -n0∞*2 0 n012 0 -n0∞12*2 0 n02 0 -n0∞2*2 0 a.n∞1 n∞1 -n1*4+n0∞1*2 0 n∞1*2 n∞ -1*4+n0∞*2 0 n∞*2 n∞12 -n12*4+n0∞12*2 0 n∞12*2 n∞2 -n2*4+n0∞2*2 0 n∞2*2 a.n0∞1 n0∞1 -n01*2 0 n0∞1*2 n0∞ -n0*2 0 n0∞*2 n0∞12 -n012*2 0 n0∞12*2 n0∞2 -n02*2 0 n0∞2*2 a.n2 n2 -n02 -n∞2 n0∞2 -n12 n012 n∞12 -n0∞12 1 -n0 -n∞ n0∞ -n1 n01 n∞1 -n0∞1 a.n02 n02 0 -n0∞2*2 0 -n012 0 n0∞12*2 0 n0 0 -n0∞*2 0 -n01 0 n0∞1*2 0 a.n∞2 n∞2 -n2*4+n0∞2*2 0 n∞2*2 -n∞12 n12*4-n0∞12*2 0 -n∞12*2 n∞ -1*4+n0∞*2 0 n∞*2 -n∞1 n1*4-n0∞1*2 0 -n∞1*2 a.n0∞2 n0∞2 -n02*2 0 n0∞2*2 -n0∞12 n012*2 0 -n0∞12*2 n0∞ -n0*2 0 n0∞*2 -n0∞1 n01*2 0 -n0∞1*2 a.n12 n12 n012 n∞12 n0∞12 -n2 -n02 -n∞2 -n0∞2 n1 n01 n∞1 n0∞1 -1 -n0 -n∞ -n0∞ a.n012 n012 0 n0∞12*2 0 -n02 0 -n0∞2*2 0 n01 0 n0∞1*2 0 -n0 0 -n0∞*2 0 a.n∞12 n∞12 n12*4-n0∞12*2 0 n∞12*2 -n∞2 -n2*4+n0∞2*2 0 -n∞2*2 n∞1 n1*4-n0∞1*2 0 n∞1*2 -n∞ -1*4+n0∞*2 0 -n∞*2 a.n0∞12 n0∞12 n012*2 0 n0∞12*2 -n0∞2 -n02*2 0 -n0∞2*2 n0∞1 n01*2 0 n0∞1*2 -n0∞ -n0*2 0 -n0∞*2

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

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

so multiplying out all the components gives:

c=(1 an+ an0∞ an0∞+an01 an01+an∞1 an∞1)*
(bn0 b n0+bn∞ b n∞+bn1 b n1)*
(1 an+ an0∞ an0∞+an01 an01+an∞1 an∞1)-1

c=(cn=an*bn + an0*bn1 + an0*bn∞
cn0=an*bn0 + an0*bn + an0∞*bn0+ an01*bn1
cn=an*bn∞ + an∞*bn + an∞1*bn1
cn1=an*bn1 + an0*bn- an∞1*bn0
cn0∞=an0*bn∞-an∞*bn0+an0∞*bn
cn01=an0*bn1-an0*bn0+an01*bn
cn∞1=an∞*bn1-an0*bn∞+an∞1*bn
cn0∞1=an0∞*bn1-an01*bn∞+an∞1*bn0

)*(1 an-an0∞ an0∞ -an01 an01 -an∞1 an∞1)/(an² + an*an0∞ + an∞1*an01)

To try to simplify this a bit we will not bother to write down the scalar common denominator: an² + an*an0∞ + an∞1*an01

Multiplying out the second product gives:

cn=an*bn - an∞1*bn01
cn0=an0*bn - an0*bn01 - an0∞1*bn01
cn=an∞*bn + an∞*bn0∞ - an0*bn∞1
cn1=an0*bn+ an∞*bn01
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=an0*bn∞1-an∞*bn01+an0*bn0∞+an0∞1*bn

sustituting above for a:

cn=(an*bn + an0*bn1 + an0*bn∞)*an + (an∞*bn1-an0*bn∞+an∞1*bn)*an01
cn0=(an*bn0 + an0*bn + an0∞*bn0+ an01*bn1)*an + (an*bn1 + an0*bn- an∞1*bn0)*an01 + (an0∞*bn1-an01*bn∞+an∞1*bn0)*an01
cn=(an*bn∞ + an∞*bn + an∞1*bn1)*an - (an*bn∞ + an∞*bn + an∞1*bn1)*an0∞ + (an*bn1 + an0*bn- an∞1*bn0)*an∞1
cn1=(an*bn1 + an1*bn- an∞1*bn0)*an- (an*bn∞ + an∞*bn + an∞1*bn1)*an01
cn0∞= -(an*bn + an1*bn1 + an0*bn∞)*an0∞+(an0*bn∞-an∞*bn0+an0∞*bn)*an-(an0*bn∞-an∞*bn0+an0∞*bn)*an0∞+(an0*bn1-an1*bn0+an01*bn)*an∞1-(an∞*bn1-an1*bn∞+an∞1*bn)*an01
cn01= -(an*bn + an1*bn1 + an0*bn∞)*an01-(an0*bn∞-an∞*bn0+an0∞*bn)*an01+(an0*bn1-an1*bn0+an01*bn)*an
cn∞1= -(an*bn + an1*bn1 + an0*bn∞)*an∞1+(an∞*bn1-an1*bn∞+an∞1*bn)*an-(an∞*bn1-an1*bn∞+an∞1*bn)*an0∞
cn0∞1= -(an*bn0 + an0*bn + an0∞*bn0+ an01*bn1)*an∞1+(an*bn∞ + an∞*bn + an∞1*bn1)*an01-(an*bn1 + an1*bn- an∞1*bn0)*an0∞+(an0∞*bn1-an01*bn∞+an∞1*bn0)*an

unbracketing terms:

cn=an*bn*an + an1*bn1*an + an0*bn∞*an + an∞*bn1*an01 -an1*bn∞*an01+an∞1*bn*an01
cn0=an*bn0*an + an0*bn*an + an0∞*bn0*an+ an01*bn1*an + an*bn1*an01 + an1*bn*an01- an∞1*bn0*an01 + an0∞*bn1*an01-an01*bn∞*an01+an∞1*bn0*an01
cn=an*bn∞*an + an∞*bn*an + an∞1*bn1*an - an*bn∞*an0∞ - an∞*bn*an0∞ - an∞1*bn1*an0∞ + an*bn1*an∞1 + an1*bn*an∞1- an∞1*bn0*an∞1
cn1=an*bn1*an + an1*bn*an- an∞1*bn0*an- an*bn∞*an01 - an∞*bn*an01 - an∞1*bn1*an01
cn0∞= -an*bn*an0∞ - an1*bn1*an0∞ - an0*bn∞*an0∞+an0*bn∞*an-an∞*bn0*an+an0∞*bn*an-an0*bn∞*an0∞+an∞*bn0*an0∞-an0∞*bn*an0∞+an0*bn1*an∞1-an1*bn0*an∞1+an01*bn*an∞1-an∞*bn1*an01+an1*bn∞*an01-an∞1*bn*an01
cn01= -an*bn*an01 - an1*bn1*an01 - an0*bn∞*an01-an0*bn∞*an01+an∞*bn0*an01-an0∞*bn*an01+an0*bn1*an-an1*bn0*an+an01*bn*an
cn∞1= -an*bn*an∞1 - an1*bn1*an∞1 - an0*bn∞*an∞1+an∞*bn1*an-an1*bn∞*an+an∞1*bn*an-an∞*bn1*an0∞+an1*bn∞*an0∞-an∞1*bn*an0∞
cn0∞1= -an*bn0*an∞1 - an0*bn*an∞1 - an0∞*bn0*an∞1- an01*bn1*an∞1+an*bn∞*an01 + an∞*bn*an01 + an∞1*bn1*an01-an*bn1*an0∞ - an1*bn*an0∞+ an∞1*bn0*an0∞+an0∞*bn1*an-an01*bn∞*an+an∞1*bn0*an

combining 'b' terms:

cn= bn*(an*an+an∞1*an01) +bn∞*(an0*an-an1*an01) + bn1*(an∞*an01 + an1*an)
cn0= bn*(an0*an+ an1*an01) + bn0*(an*an+an0∞*an)- bn∞*(an01*an01)+ bn1*(2*an01*an + an0∞*an01)
cn= bn*(an∞*an - an∞*an0∞+ an1*an∞1) - bn0*(an∞1*an∞1)+ bn∞*(an*an- an*an0∞) + bn1*(2*an∞1*an - an∞1*an0∞)
cn1= bn*(an1*an- an∞*an01)- bn0*an∞1*an - bn∞*an*an01 +bn1*(an*an- an∞1*an01)
cn0∞= bn*(an0∞*an0∞)+bn0*(-an∞*an+an∞*an0∞-an1*an∞1) +bn∞*(-2*an0*an0∞+an0*an+an1*an01) +bn1*(- an1*an0∞+an0*an∞1-an∞*an01)
cn01= bn*(-an0∞*an01)+bn0*(an∞*an01-an1*an)+bn∞*(-2*an0*an01) +bn1*(-an1*an01 +an0*an)
cn∞1= bn*(-an∞1*an0∞) +bn∞*(-an0*an∞1-an1*an+an1*an0∞)+bn1*(an∞*an- an1*an∞1- an∞*an0∞)
cn0∞1= bn*(-an0*an∞1+ an∞*an01- an1*an0∞)

Now let:

bn=0
bn0=1
bn∞= u²
bn1= 2u

which gives:

cn= u²*(an0*an-an1*an01) + 2u*(an∞*an01 + an1*an)
cn0= (an*an+an0∞*an)- u²*(an01*an01)+ 2u*(2*an01*an + an0∞*an01)
cn= -(an∞1*an∞1)+ u²*(an*an- an*an0∞) + 2u*(2*an∞1*an - an∞1*an0∞)
cn1= - an∞1*an - u²*an*an01 +2u*(an*an- an∞1*an01)
cn0∞= (-an∞*an+an∞*an0∞-an1*an∞1) +u²*(-2*an0*an0∞+an0*an+an1*an01) +2u*(- an1*an0∞+an0*an∞1-an∞*an01)
cn01= (an∞*an01-an1*an)+u²*(-2*an0*an01) +2u*(-an1*an01 +an0*an)
cn∞1= u²*(-an0*an∞1-an1*an+an1*an0∞)+2u*(an∞*an- an1*an∞1- an∞*an0∞)
cn0∞1= 0

For translation let:

an=1
an0=0
an∞=0
an1=0
an0∞=0
an01=0
an∞1=t

which gives:

cn= 0
cn0= 1
cn= -t²+ u²+ 2u*2*t :::almost: (t +u)²=t²+ u²+ 2u*t
cn1= -t +2u
cn0∞= 0
cn01= 0
cn∞1= 0
cn0∞1= 0