We can embed Euclidean space, or other spaces such as Minkowski space, into a higher dimensional space, called conformal space, (introduced on this page) this makes transform operations involving rotations and translations easier to work with. It allows us to represent all angle preserving transformations.
On this page we show how conformal space can be represented using Geometric Algebra.
When we discussed Euclidean space we said that there is no specific origin (unless we add an arbitrary coordinate system) and any point is as good as any other for zero point. Euclidean space also does not have a way to represent points at infinity. Conformal space adds two new dimensions, one represents zero and the other represents infinity.
We can now represent translations as rotations around an axis at infinity. (Its interesting to speculate if there might be a duality here to allow us to represent translations as rotations at zero?).
Multiplying Multivectors (geometric product)
When multiplying multivectors using the convention we have chosen for our conformal space we must multiply out each term, not only the magnitude of each term but also its dimension (by dimension I mean the basis vector associated with it).
For a 1 dimensional Euclidean space embedded in a 3D conformal space I have tabulated all the possible multipications of basis vectors on this page, for a 2 dimensional Euclidean space embedded in a 4D conformal space I have tabulated all the possible multipications of basis vectors at the bottom of this page, by the time we get to a 3 dimensional Euclidean space embedded in a 5D conformal space the table gets a bit unwieldy. Once we add up the 5 vector dimensions + 10 bivector dimensions and so on we end up with a 32×32 table. So instead of a table I will define an algorithm to detemine the basis vector type when multiplying an two basis types.
This procedure is slightly different from the procedure defined on the Clifford algebra page because we need to cope with 2 basis which square to zero.
The type of each term can be calculated by following these rules:
- Write down the indices of both terms (the indicies are 0,∞,1,2,3...), the indices of the left hand multiplicand followed immediately by the indices of the right hand multiplicand without a space. If either of the terms is negative then put a negative sign in front, if both terms are negative then the composite is positive.
- If the term contains two '0' indicies without intervining '∞' indicies, or two '∞' indicies without intervining '0' indicies, then the term is zero and we do not need to include it.
- We then need to convert this into a valid element for the multivector, to do this we need to remove any duplicate indices and get the indices in the right order for the multivector (the order of indices is 0,∞,1,2,3... except where we have a '13' term which we will reverse to '31' ). In order to do this we apply the following rules as often as required to get to a valid element.
- Adjacent duplicate indices can be removed, in other words if two of the same index like '22' are next to each other they are both removed.
- We can swap adjacent indices, every swap of adjacent numbers inverts the sign. The exception to this are:
- If the adjacent indicies are identical, in this case apply the rule for adjacent duplicate indices above.
- If the adjacent indicies are ∞0 we cannot reverse to give 0∞ instead:
- replace n0∞0∞ with n0∞.
- otherwise replace n0∞0 with n0
- otherwise replace n∞0∞ with n∞.
- otherwise replace n0∞ with 1-n0∞.
- If we need to swap non-adjacent numbers we can do this by a sequence of adjacent swaps (each one inverting the sign).
- If there are no numbers left the result is a scalar which we will denote n (or -n if negative).