A **seven-dimensional cross product** is a vector-based product over two seven-dimensional vectors that produces another seven-dimensional vector as a result. The only other dimension where this is a convenient binary operation is the third.

Now, upon hearing the above, anyone with a basic knowledge of vectors would be yelling, "Hey, excuse me, a cross product can *only* exist in three dimensions!" And they'd be pretty right, as far as the traditional definition of cross products goes. However, math is very curious in its allowances of the absurd.

Let's begin with the traditional cross product, also known as the vector product of two vectors.

These exist only in three dimensions. The direction of **a**×**b** is given by the unit vector perpendicular to both **a** and **b**, and the magnitude is given by the product of the magnitudes of **a** and **b** and the sine of the angle between them. The exact definition for manipulating the vector component values can be written nice and concisely, for those who have a basic knowledge of matrices:

/ A_x \ / B_x \ | **i** **j** **k** |
| A_y | X | B_y | = | A_x A_y A_z |
\ A_z / \ B_z / | B_x B_y B_z |

where i, j, k are the three basis vectors in 3-space.

By considering what a cross product is, we can extend it a little bit. The two vectors are definitely going to be coplanar, since there's only two of them, so the third vector can be perpendicular to both. The matrix mnemonic used for determining the cross product enumerates the basis vectors on the top row, and then each of the operated-on vectors on the rows below it. Let's try this with a 2D vector, for which we can kind of confirm it. (It would necessarily require only one vector, as there's one row to fill in the square matrix.)

cross_2(v1) = cross_2([ v_1, v_2 ])
_ | e1 e2 |
— | v_1 v_2 |
= e_1 * v_2 - e_2 * v_1
= [ v_2, -v_1 ]

Graphically, this is:

^
| /
| / --- [ v_1, v_2 ]
| / ... [ v_2, -v_1 ]
|/
<--+-------->
|'.
| '.
| '.
v

which, though not to scale, confirms our hypothesis. Extending this pattern upwards to an arbitrary number of dimensions, we find that

cross_{N+1}( v1, v2, ... vN )
| e1 e2 . . . e{N+1} |
| v1_1 v1_2 . . . v1_{N+1} |
| v2_1 v2_2 . . . v2_{N+1} |
= | . . . . |
| . . . . |
| . . . . |
| vN_1 vN_2 . . . vN_{N+1} |

which works because the `N`

vectors will all necessarily be in the same `N`

-space, so an `{N+1}`

dimensional vector completely perpendicular to that `N`

-space can always be found, as we're working in an `{N+1}`

-space. For example, when `N`

= 2, there are 2 3D vectors, and a 2-space—i.e. a plane—can be found between them (and in fact, it describes a unique plane in 3-space). Therefore a vector perpendicular to that 2-space—and thus perpendicular to all the constituent vectors—can always be found, as we're working in 3-space.

As we can deduce from the general case, the traditional seven-dimensional cross product must necessarily then take six input vectors for its one output. However, there exists a quirk of mathematics that allows for a simplification down to two inputs.

In attempting to find out how to manipulate three-tuples like we currently play with vectors, a mathematician named Hamilton invented quaternions. These are like an extension of the complex numbers, in the same way that the complex numbers extend the reals.

The general form of quaternions is *a + bi + cj + dk*, and the equation that governs the interactions of i, j, k is *i² = j² = k² = ijk = -1*. By playing around with various inner equalities of this landmark relation, we get the following useful equations.

i² = j² = k² = -1
ij = k = -ji
jk = i = -kj
ki = j = -ik

Note how, like the 3-dimensional cross products, these variables posses anticommutativity: that is, *ab* = -*ba*.

The most important breakthrough of this system is that any polynomial in i, j, k simplifies to a quaternion. You may have thus noticed the the i, j, k of quaternions correspond to the **i**, **j**, **k** of vectors. You may have also drawn a connection from the fact that quaternion ij = k and that the cross product of **i** and **j** is **i**×**j** = [1,0,0]×[0,1,0] = [0,0,1] = **k**. The multiplication of imaginary quaternions is exactly the same as 3D vector cross products. Usage of purely imaginary quaternions is therefore effectively a way to manipulate three-tuples, as any and all sums or products that have the unit real term can be ignored.

So what does this mean for seven-dimensional cross products? Well, there is another system, the octonions which is an extension of the quaternion from four to eight "dimensions" or types of units. This is done by introducing another imaginary factor, an *l*, in the same way that the complex numbers introduced an *i* to the reals. An octonion is therefore constructed from quaternions as a complex number is from reals: *a + bi + cj + dk + (e + fi + gj + hk)l = a + bi + cj + dk + el + fil + gjl + hkl*. *l²* is also equal to -1. (This is a bit of a glossing-over of how the extension works, but it's more or less the idea.)

Here's a multiplication table for all the imaginary values currently in play (to be read as "header-of-row × header-of-column"):

× | **i** | **j** | **k** | **l** | **il** | **jl** | **kl** |

**i** | -1 | k | -j | il | -l | -kl | jl |

**j** | -k | -1 | i | jl | kl | -l | -il |

**k** | j | -i | -1 | kl | -jl | il | -l |

**l** | -il | -jl | -kl | -1 | i | j | k |

**il** | l | -kl | jl | -i | -1 | -k | j |

**jl** | kl | l | -il | -j | k | -1 | -i |

**kl** | -jl | il | l | -k | -j | i | -1 |

There are a number of interesting and crazy properties of octonions. First and foremost, their multiplication is neither commutative nor associative, meaning it cannot be said with certainty that *ab* = *ba* or *(ab)c = a(bc)* for octonions *a*, *b*, *c*.

There is a neat mnemonic utilising the properties of the Fano plane for aiding with the multiplication of an octonion's imaginary terms.

**KL** KL KL KL
/|\ @ @ \
/ | \ @ @ \
/ _|_ \ ___ | / \
/.' | '.\ .' '@ | / \
**I**: | :**J** I' @J I. | .J I J
/| ':.**L**.:' |\ @ L | ':.L.:' / L \
/ .\' | '/. \ @ / ,.' | '., / @
/.' '._|_.' '.\ '._ @@' @' | '@ / @
**JL**--------**K**--------**IL** JL K IL JL@ K @IL JL@@------K--------IL

Due to the difficulty of ASCII art diagrams, I have represented arrowheads by double @ signs in each of the three groupings. The Fano plane is a kind of a directed graph, and here, its seven nodes are labeled with the seven imaginary terms of an octonion. Each arrow passes through three terms. (In the case of i, j, and k, there is a circular arrow, which I've represented with three arrowheads to aid directional orientation.) If the items along an arrow are represented `A -- B -@@ C`

, then when you're multiplying A × B, the result is C, and if you're multiplying B × A, it's -C. You should also consider A, B, and C as cyclically permutable items, to encompass all possible multiplications (e.g. to find *il* × *kl* = *j* from `KL -- J -@@ IL`

).

That all being said, octonion multiplications are best left to computers, because this is the level of complexity where you're dealing with 8-term polynomials governed by non-trivial simplification rules. You really only need the theory at this point, and not the actual computational practice. In keeping with that whole "just use computers" idea, mathematicians have decided to simply refer to them as *e*_{1} through *e*_{7} or *i*_{0} through *i*_{6}. Because remembering a bunch of ordered triples is so much less arbitrary than cool names, grumble grumble stupid stuffy math nerds mneh mneh mneh.

So, if we can make the connection from 3-vectors to quaternions, can we go in reverse for octonions, to create a method for 7-vectors? Judging by the node title, that answer is yes.

A seven-dimensional vector cross product basically is the same leap from octonions that Hamilton made to use quaternions as 3-vectors: just do the math, but ignore the real part. The canonical configuration for all the multiplications is shown below.

× | **e**_{1} | **e**_{2} | **e**_{3} | **e**_{4} | **e**_{5} | **e**_{6} | **e**_{7} |

**e**_{1} | 0 | -e_{3} | -e_{2} | e_{5} | -e_{4} | -e_{7} | e_{6} |

**e**_{2} | -e_{3} | 0 | e_{1} | e_{6} | e_{7} | -e_{4} | -e_{5} |

**e**_{3} | e_{2} | -e_{1} | 0 | e_{7} | -e_{6} | e_{5} | -e_{4} |

**e**_{4} | -e_{5} | -e_{6} | -e_{7} | 0 | e_{1} | e_{2} | e_{3} |

**e**_{5} | e_{4} | -e_{7} | e_{6} | -e_{1} | 0 | -e_{3} | e_{2} |

**e**_{6} | e_{7} | e_{4} | -e_{5} | -e_{2} | e_{3} | 0 | -e_{1} |

**e**_{7} | -e_{6} | e_{5} | e_{4} | -e_{3} | -e_{2} | e_{1} | 0 |

This chart is exactly the octonion chart above, with the "names" changed to the seven basis vectors, and the real parts ignored. For those of us who are well-versed in tensors, this has a slightly more compact description:

**e**_{i} × **e**_{j} = *ε*_{ijk} **e**_{k}

where *ε*_{ijk} is the completely antisymmetric tensor with value 1 when *ijk* are 123, 145, 176, 246, 257, 347, 365.

Now, of course, since there are five possible mutually-perpendicular vectors perpendicular to any two non-parallel vectors in 7-dimensional space, there is more than one way to construct a valid table for a seven-dimensional cross product. (In this, someone who insists that there can only be three-dimensional cross products would be correct, because only in the third dimension is there a *unique* cross product.*) The version shown above is known as the Cayley-Dickson octonion version, because it is formed from the Cayley-Dickson construction. Here is a curious one named after the mathematician Pertti Lounesto.

× | **e**_{1} | **e**_{2} | **e**_{3} | **e**_{4} | **e**_{5} | **e**_{6} | **e**_{7} |

**e**_{1} | 0 | e_{4} | e_{7} | -e_{2} | e_{6} | -e_{5} | -e_{3} |

**e**_{2} | -e_{4} | 0 | e_{5} | e_{1} | -e_{3} | e_{7} | -e_{6} |

**e**_{3} | -e_{7} | -e_{5} | 0 | e_{6} | e_{2} | -e_{4} | e_{1} |

**e**_{4} | e_{2} | -e_{1} | -e_{6} | 0 | e_{7} | e_{3} | -e_{5} |

**e**_{5} | -e_{6} | e_{3} | -e_{2} | -e_{7} | 0 | e_{1} | e_{4} |

**e**_{6} | e_{5} | -e_{7} | e_{4} | -e_{3} | -e_{1} | 0 | e_{2} |

**e**_{7} | e_{3} | e_{6} | -e_{1} | e_{5} | -e_{4} | -e_{2} | 0 |

You can verify that it produces a cohesive cross product, so it's an acceptable substitute. And there is an interesting pattern in the cross product:

**e**_{1} × **e**_{2} = **e**_{4}

**e**_{2} × **e**_{3} = **e**_{5}

**e**_{3} × **e**_{4} = **e**_{6}

**e**_{4} × **e**_{5} = **e**_{7}

**e**_{5} × **e**_{6} = **e**_{1}

**e**_{6} × **e**_{7} = **e**_{2}

**e**_{7} × **e**_{1} = **e**_{3}

That is to say, **e**_{i} × **e**_{i+1} = **e**_{i+3}, for *i* mod 7, ranging from 1 to 7, and (*i*, *i*+1, *i*+3) are allowed to permute evenly—meaning (*i*+1, *i*+3, *i*) and (*i*+3, *i*, *i*+1) are also valid orders for the three subscripts. (On the multiplication table, take a look at each of the NW-SE diagonals; notice anything?)

The above has mainly been dealing with just the way the basis vectors interact. To cross any two 7D vectors, you can decompose them by their bases and cross those by the above-mentioned rules, adding the basis results back into a full vector.

A final inquisition. Some readers may be wondering, if there's a cross product for 1, 3, and 7 dimensions, which would correspond to the 2-, 4- and 8-dimensional imaginary extensions to the real numbers ℝ, are there also 15D and 31D and higher binary cross products?

The answer is no, there are not, and binary cross products are only defined for 0, 1, 3, and 7 dimensions. The 0- and 1-dimensional ones are trivially equal to the zero vector, because there aren't enough dimensions for perpendicularity in those two. These four numbers—0, 1, 3, 7—correspond to the 1, 2, 4, 8 dimensions of Hurwitz's theorem, which relates to the fact that there can only exist proper normed divison algebras in those dimensions. The underlying issue is that of the existence of *zero divisors*.

As a specific example, take the Cayley-Dickson sedenions, which have one real and 15 imaginary components. This totals 16 parts, and corresponds to ℝ^{16}, as the complex numbers, quaternions, and octonions have corresponded to ℝ^{2}, ℝ^{4}, and ℝ^{8}, respectively. These sedenions are obtained by extending the octonions in the same way that the quaternions were extended to create the octonions. One may think that there may be a cross product that corresponds to the sedenion table (not reproduced here due to size). However, it is possible construct zero divisors from sedenions, which are non-zero numbers which, when multiplied, produce 0. One such example is (e_{3} + e_{10}) × (e_{6} - e_{15}) = 0, and a relevant portion of the sedenion multiplication table is produced below for comparison.

× | **e**_{6} | **e**_{15} |

**e**_{3} | e_{5} | e_{12} |

**e**_{10} | e_{12} | e_{5} |

What this ends up meaning is that, were you to have a binary cross product for 15-vectors, some pairs of vectors that should have perpendiculars, don't, because the result of the cross product is the zero vector, which is supposed to only happen when the two vectors are parallel or antiparallel. It would be violating the law which relates the cross product's magnitude to the magnitudes of the multiplicands and the angle between them: |**a**×**b**| = |**a**||**b**| sin *θ*. (A cross product's magnitude equaling zero when attained from non-zero vectors, would mean that sin *θ* must equal 0, though that isn't correct either, as the multiplicands are not parallel, so a contradiction arises.)

All extensions upwards from sedenions also result in the existence of zero divisors, meaning (in a very hand-wavy way) that no other systems from which to derive binary cross products exist.

Wikipedia has been invaluable as a source. The sedenion and normed division algebra pages were also helpful.

* If we're going to be really technical, the one in three dimensions is not unique either, because of a principle related to chirality: namely, one can easily define a binary operation on 3-vectors, ×₂, such that **a** ×₂ **b** = **b** × **a** = - (**a** × **b**), and this satisfies all conventional laws of cross products except for the right-hand rule, which it supplants with a "left-hand rule". In essence, this follows from the fact that there are two unit vectors perpendicular to any pair of non-parallel vectors—one "up" and one "down", if the infinite plane defined by the two operands is considered to stretch forwards, backwards, left and right. This sort of duality appears in many places, from the pair of solutions to a square power to the pair of intersections of *n* *n*-spheres in *n*-space (e.g. two circles on a plane or three spheres in 3D space). The selection of either one of them—or of any of them, if the duality is a multiplicity—is usually only a convention.

*C-Dawg says* re seven-dimensional cross product: I can't say I follow this, but: when you talk about quaternions et al giving rise to these restrictions, isn't it relevant that Hamilton's definition seems arbitrary? I may be missing something fundamental but it seems that i2, j2,etc being equal to -1 is just one way to extend the complex numbers, and everything that follows is based on that.

*tubular says* I know what you mean by it appearing arbitrary. Consider this: Hamilton's goal in inventing quaternions was to invent a system for manipulating 3-tuples in a *consistent* fashion, not necessarily extending the complex numbers. (That was just the easiest algebraic vehicle, he found.) And although you might dismiss the chain the Cayley-Dickson construction creates as once again resting on an arbitrary choice, consider also that there has been extensive study into other extensions, like split-complex numbers, coquaternions, split-biquaternions, and so on, and they have either not been able to produce a coherent analogy to cross products, or they made a less useful one than Hamilton's. It's about as arbitrary as the adding and subtracting of f(x+h)g(x) in the derivation of the product rule.