This page defines the general concepts of mathematical operations that can be applied to any dimensional multivectors.
The specific rules for multivectors based on a given dimension vector is explained on these pages:
- Arithmetic of multivectors based on 2D vectors.
- Arithmetic of multivectors based on 3D vectors.
- Arithmetic of multivectors based on 4D vectors.
- Arithmetic of multivectors based on 5D vectors.
The above pages also contain a calculator for these multivectors.
The multivector is made up of elements of different grades (scalar, vector, bivector, etc.) for example:
| parameter | ||
| double e; | scalar | |
| double e1,e2,e3 | vector | e1 = e1,e2 = e2 ,e3 = e3 |
| double e12,e31,e23 | bivector | e12 = e1 ^ e2 ,e31 = e3 ^ e1 ,e23 = e2 ^ e3 |
| double e123 | trivector | e123 = e1 ^ e2 ^ e3 |
Adding multi vectors numbers
Just add each corresponding element independently.
For example if we are adding multivectors a and b, if multivector 'a' contains the element a.e2 and multivector 'b' contains the element b.e2 then the corresponding element in a+b will be:
e2 = a.e2 + b.e2
Subtracting multi vectors numbers
Just subtract each corresponding element independently.
Multiplying multi vectors numbers (geometric product)
There are different types of multiplication defined for multivectors. Here we are discussing the geometric product which is the main type of multiplication and is what is meant when we use the '*' symbol.
To multiply two multivectors (a * b) then we multiply each part of a by each part of b, so that we have multiplied every combination of terms.
The main type of multiplication, which is described here, is geometric multiplication.
Each term can be calculated as follows, for example when working out the 5th term in the first multivector a.e12 e1^ e2 multiplied by the 6th term in the second multivector b.e31 e3^ e1 we get the magnitude a.e12*b.e31 and the type e1^ e2 * e3^ e1 which can be calculated as follows:
The type of each term can be calculated by following these rules:
- Write down the indices of both terms, 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.
- 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 chosen for a given multivector is not standardised but we must be consistent about it so I have defined what basis I will use here for given multivectors here: 2D, 3D, 4D or 5D). 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. If the dimention squares to a negative value then the sign of the term is also changed. If the dimention squares to zero then the whole term is set to zero.
- We can swap adjacent indices, every swap of adjacent numbers inverts the sign. The exception to this is if the adjacent numbers are identical, in this case apply the rule for adjacent duplicate indices above.
- If we need to swap non-adjacent numbers we can do this by a sequence of adjacent swaps (each one inverting the sign). As a short cut we can also swap any non-adjacent indices, just inverting the sign once, this short cut only works if neither of the two indices being swapped crosses over an index which is the same as itself (because that would be equivalent to swapping adjacent duplicate indices which is not allowed). In this case restrict yourself to adjacent swaps until the duplicate is removed.
- If there are no numbers left the result is e (or -e if negative).
The pages listed at the top, containing arithmetic of multivectors based on various dimensional vectors, contain complete tables containing the result of multiplying every permutation of elements so you don't have to learn the above rules unless you are interested.
Other Methods for multiplication
Eddington Basis for aMonad E Number 1 : 0, 0, 0, *0 E Number 2 : 0, 0, 1, *1 E Number 3 : 0, 0, 2, *2 E Number 4 : 0, 0, 3, *3 E Number 5 : 0, 1, 2, *6 E Number 6 : 0, 1, 3, *7 E Number 7 : 0, 2, 3, *11 E Number 8 : 1, 2, 3, *27 Basis products for aMonad E Number 1 : 1, 2, 3, 4, 5, 6, 7, 8, *0 E Number 2 : 2, 1, 5, 6, 3, 4, 8, 7, *1 E Number 3 : 3, -5, 1, 7, -2, -8, 4, -6, *2 E Number 4 : 4, -6, -7, 1, 8, -2, -3, 5, *3 E Number 5 : 5, -3, 2, 8, -1, -7, 6, -4, *6 E Number 6 : 6, -4, -8, 2, 7, -1, -5, 3, *7 E Number 7 : 7, 8, -4, 3, -6, 5, -1, -2, *11 E Number 8 : 8, 7, -6, 5, -4, 3, -2, -1, *27 Basis products for aMonad E Number 1 : 1, 2, 3, 4, 5, 6, 7, 8, *0 E Number 2 : 2, -1, 5, 6, -3, -4, 8, -7, *1 E Number 3 : 3, -5, -1, 7, 2, -8, -4, 6, *2 E Number 4 : 4, -6, -7, -1, 8, 2, 3, -5, *3 E Number 5 : 5, 3, -2, 8, -1, 7, -6, -4, *6 E Number 6 : 6, 4, -8, -2, -7, -1, 5, 3, *7 E Number 7 : 7, 8, 4, -3, 6, -5, -1, -2, *11 E Number 8 : 8, -7, 6, -5, -4, 3, -2, 1, *27
As with matrix and quaternion multiplication the order of the multiplicands is important (multiplication on mutivectors is not commutative). As you can see from the first table some of the terms are symmetric (a*b = b*a) and some are anti-symetric (a*b = - b*a) so overall the multiplication operation is not symmetrical.
Inner and Outer Product

In addition to the geometric product there are two more types of multiplication used in Geometric Algebra. These extend and generalise the 'dot' and 'cross' products used in 3D vector algebra.
Inner product by a vector reduces the grade of a multivector. It is related to the dot product.
Outer product by a vector increases the grade of a multivector. It is related to the cross product.
The following identities relate the inner, outer and geometric products of vectors (grade one multivector) :
| ab = ½ (ab + ba) | This is symmetrical (ab = ba) |
| a^b = ½ (ab - ba) | This is anti-symmetrical (a^b = - b^a) |
| a * b = ab + a^b |
Where:
- a and b are vectors
- Kk a multivector of grade k
We can extend this to the multipication of a vector by a general multivector as follows:
aK = ½ (aK + (-1)k+1Ka)
a^K = ½ (aK + (-1)k Ka)
a*K = a•K + a^K
Where k is the grade of K. The (-1)k factor alternates the sign as follows:










