Hacker News new | ask | show | jobs
by ajkjk 17 hours ago
The two should be the same up to possibly some factors of k! depending on your definitions.

Just as an example, suppose you have two multivectors (abc) and (xyz) with all the vectors orthogonal (for simplicity). The geometric product

(abc)(xyz)

has its scalar part created by

(abc)(xyz) = (ab) (c.x) (yz) = (c.x) (ab) (yz) = (c.x) a (b.y) (z) = (c.x) (b.y) (a) (z) = (a.z) (b.y) (c.x)

You can see how the dot product (which uses the metric internally) is being applied "in-to-out" : the adjacent terms are dotted, at which point they become commuting scalars; then the next terms, etc. Which, frankly, is dumb. This is why the GA version of a scalar product has the "reverse" operation involved... because the GP is doing this in-to-out thing, the scalar product has to undo it by defining (abc) . (xyz) = (abc) (xyz)^~ = (abc) (zyx) = (a.x) (b.y) (c.z), with ^~ meaning reverse.

Whereas the standard exterior algebra inner product is always left-to-right, giving

(abc).(xyz) = (a.x) (b.y) (c.z)

IMO the GA version is a mess because it's conflating two concepts. When the GP works, it is composing operators, so AB = A ∘ B. But the inner product, at its core, is more like division---it wants to have (a).(a) = 1, since its job is to say say "how many copies of (a) are there in (a)?" To make this work for multivectors (ab).(ab), it needs to be left-to-right. GA does in-to-out to copy quaternions with their i^2 = -1, but that's not necessary -- i^2 = -1 follows from the fact that for a rotation, R ∘ R = -I, so it is composing two rotations, not measuring one in terms of the other. Really i^2 = -1 should not be interpreted as a dot product at all. This is very clear when a metric is involved: R_xy ∘ R_xy = -I is a degree-two tensor which transforms with two factors of the metric, whereas (xy).(xy) = 1 is a degree-zero tensor, a coordinate-invariant scalar. They are just different operations, which happen to overlap in simple cases.