MobMonRob / DSL4GeometricAlgebra

DSL for Geometric algebra with Java
Apache License 2.0
2 stars 1 forks source link

Expressions with multiple wedge product produces wrong results in the truffel implementation #10

Open orat opened 3 weeks ago

orat commented 3 weeks ago

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!!!

orat commented 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"));