[qfcc] Switch 2d PGA groups to be easily implemented

I guess Hamish's suggestion made sense at the time, but I found that
with the current instructions, the reversed bivector wasn't so nice to
implement it would need a swizzle as well as the cross-product.
This commit is contained in:
Bill Currie 2023-08-23 21:43:14 +09:00
parent 8ff2c5a747
commit c550ab6b86

View file

@ -304,16 +304,16 @@ algebra_init (algebra_t *a)
basis_layout_init (&a->layout, 6, a->groups);
} else if (p == 2 && m == 0 && z == 1) {
// 2d PGA (w squares to 0, x y square to +1):
// : 1 xy wx wy
// : x y w wxy
// : yw xw xy 1
// : x y w wxy
basis_blade_t pga_blades[8] = {
blades[0], blades[6], blades[4], blades[5],
blades[5], blades[4], blades[6], blades[0],
blades[2], blades[3], blades[1], blades[7],
};
a->groups = malloc (sizeof (basis_group_t[4]));
a->mvec_types = alloc_mvec_types (4);
basis_group_init (&a->groups[0], 1, pga_blades + 0, a, 0);
basis_group_init (&a->groups[1], 3, pga_blades + 1, a, 1);
basis_group_init (&a->groups[0], 3, pga_blades + 0, a, 0);
basis_group_init (&a->groups[1], 1, pga_blades + 3, a, 1);
basis_group_init (&a->groups[2], 3, pga_blades + 4, a, 2);
basis_group_init (&a->groups[3], 1, pga_blades + 7, a, 3);
basis_layout_init (&a->layout, 4, a->groups);