The recent thread A crossprod problem, although not directly related, inspired me to write this blog entry about bilinear cross products and their noticable property [see for instance P. Lounesto, Clifford Algebras and Spinors, 2nd ed. (Cambridge University Press, Cambridge, 2001)]:

**Theorem:** A *bilinear* cross product obeying the *orthogonality property* and the *Pythagorean property*, see below, exists only in `3`

or `7`

(real or complex) dimensions.

No proof of this fact will be given, only the explicit construction of the seven-dimensional cross product will be given: Define a function `CrossProd7D`

by

CrossProd7D := proc(a::'Vector'(7,algebraic),b::'Vector'(7,algebraic))
Vector(7,[
a[2]*b[3]-a[3]*b[2]+a[6]*b[5]-a[5]*b[6]+a[4]*b[7]-a[7]*b[4],
a[3]*b[1]-a[1]*b[3]+a[4]*b[6]-a[6]*b[4]+a[5]*b[7]-a[7]*b[5],
a[1]*b[2]-a[2]*b[1]+a[6]*b[7]-a[7]*b[6]+a[5]*b[4]-a[4]*b[5],
a[6]*b[2]-a[2]*b[6]+a[3]*b[5]-a[5]*b[3]+a[7]*b[1]-a[1]*b[7],
a[4]*b[3]-a[3]*b[4]+a[7]*b[2]-a[2]*b[7]+a[1]*b[6]-a[6]*b[1],
a[2]*b[4]-a[4]*b[2]+a[7]*b[3]-a[3]*b[7]+a[5]*b[1]-a[1]*b[5],
a[3]*b[6]-a[6]*b[3]+a[2]*b[5]-a[5]*b[2]+a[1]*b[4]-a[4]*b[1]
])
end proc:

Then, define three seven-dimensional vectors `u`

, `v`

, and `w`

by:

u := Vector(7,(i) -> u||i):
v := Vector(7,(i) -> v||i):
w := CrossProd7D(u,v);

Now, the crucial properties are the orthogonality property and the Pythagorean property, respectively (the `LinearAlgebra`

package is assumed loaded from here on):

simplify(DotProduct(w,u,conjugate = false)),
simplify(DotProduct(w,v,conjugate = false)),
simplify(DotProduct(w,w,conjugate = false) - (
+ DotProduct(u,u,conjugate = false)
* DotProduct(v,v,conjugate = false)
- DotProduct(u,v,conjugate = false)
* DotProduct(v,u,conjugate = false)
));
0, 0, 0

The seven-dimensional cross product may, of course, be used also as a three-dimensional cross product:

u := Vector([u1,u2,u3,0,0,0,0]):
v := Vector([v1,v2,v3,0,0,0,0]):
Equal(CrossProd7D(u,v)[1..3],CrossProduct(u[1..3],v[1..3]));
true

The reason for the existence of these bilinear cross products is closely related to the existence of the division algebras the quaternions and the octonions. These bilinear cross products deals with the imaginary (the vector) part of these algebras. For full blown, including also the real part (scalar part), quaternions or octonions there is a similar theorem to the one above: Only in `4`

or `8`

(real or complex) dimensions does a *trilinear* cross product obeying the orthogonality property and the *Gram-Schmidt determinantal property* (generalization of the Pythagorean property above) exist.

PS: I have been forced to leave out some relevant output because the `maple`

tag still seems to be malfunctioning.