I’m new to GA and doing some self-instruction at home, so this may be obvious, but I’m not getting it.

In r200.cpp, the scalar component (index 0) is never assigned in the product operations such as the geometric product, dot product, and wedge product, so the value is presumable always 0.

For the geometric product I would have assumed the value of the scalar component would have been something along the lines of:

res[0] = a[0]*b[0]-a[2]*b[2]+a[1]*b[1]-a[3]*b[3]

where the * operation is simply floating point multiplication, and assuming general vectors a and b with values indexed from 0 and distributing geometric product then combining like terms (in this case focussing on the scalar value).

Another thing which appears contradictory, is the biVector tool expression evaluator doesn’t seem to discard scalar components of the multivectors a and b.

So, what does r200.cpp actually implement?