Open orat opened 3 weeks ago
Testcode for comparing:
CGAMultivector Pc = o.add(CGAMultivector.createEx(0.46446222)). add(CGAMultivector.createEy(0.1284755081432715)). add(CGAMultivector.createEz(0.004980000000000002)). add(CGAMultivector.createInf(0.11612795520000001));
System.out.println(Pc.toString("input"));
// opns plane (grade 4) - through joints 1, 2, 3 and 4, eq. 46
// 0.00498 + 0.46446221999999976*e1^e3 + 0.1284755081432714*e2^e3 - 0.004979999999999999*eo^ei
// - 0.46446221999999976*eo^e1^e3^ei - 0.1284755081432714*eo^e2^e3^ei
//PIc := ((ε₀^ε₃)^Pc)^εᵢ
CGAMultivector result = o.op(e3).op(Pc).op(inf);
System.out.println(result.toString("result"));
The line PIc := ε₀^ε₃^Pc^εᵢ in the debug test script ika.ocga line 82
this should result in only grade 4 blades but there are additional blades with other grades. The values of the grade-4 blades are correct.
Additonal brackets changes only the signs as expected.
A test in ConformalGeometricAlgebra implemented by using the object methods instead of the language produces the correct result so the default underlaying implementation of op() should be correct
This is a blocking bug!!!