- local g, x, y, X, Y, u, v, t, q, r;
- x = gf(1); X = gf(0);
- y = gf(0); Y = gf(1);
-
- if (b == gf(0)) { g = a; } else if (a == gf(0)) { g = b; }
+ local swap = 0;
+ local g, x = 1, X = 0, y = 0, Y = 1, q, r, t;
+ if (a.x < b.x) {
+ t = a; a = b; b = t;
+ swap = 1;
+ }
+ if (b == gf(0))
+ g = a;