`e20` and weird translator in 2D PGA

Why does the Caley table for 2D PGA use e20 instead of e02?

Moreover a translation motor T in 2D apparently must be defined as 1 - x*e20 + y*e01, otherwise the sandwich product T*x*reverse(T) does not give the expected translation. Compared to the 3D case, where a translation motor is simply 1 + x*e01 + y*e02 + z*e03, there is a negative sign for the x component and the order of x and y are swapped. What is the reason for this inconsistency with the sign?

1 Like

After some more meditation on this question I understand now that the translator derives from the point/vector definition as 1 + orthogonal(vector(d)/2), and the point/vector definition is dual(E0 + x*E1 + y*E2). The coefficients follow from that, and there is not really a point to expect them to be one form or another.

However the question remains why the definition of PGA 2D on the website uses E20 instead of E02. I tried an implementation which uses E02 and it seems to work fine so far.

I suspect it probably has something to do with keeping the ordering of the indices in some canonical or preferred cyclical order (e.g. 0->1->2->0->…). Other than that, there may not be a compelling reason (as is probably true with many conventions). So long as the signs are consistent with the index ordering and the definitions of the dual operations and geometric products, then the math should work out the same.

I bet that is a trick to optimize products, since e_{02}=-e_{20}, probably the code runs faster with that sign.