The exp
function Gaigen 2.5 generates gives the wrong results in some very important cases. The formulas used in the code itself are simply wrong; it's not just something I messed up in the xml
or implementation.
To give a specific example, I have multivectors with a basis given by t,x,y,z, and the metric given by t.t=-1
and x.x=y.y=z.z= 1
. (This is Minkowski spacetime or the conformal plane.) But basically any time the result of exp
should include the pseudovector t^x^y^z
, it is not there, and all the coefficients are wrong. For example, the following equation is correct
exp(1.2*(x^y) + 3.4*(t^z)) = 5.435 + 13.98*(x^y) + 5.423*(t^z) + 13.95*(t^x^y^z)
This can be calculated using the series expansion of exp
, or we can use the fact that x^y
and t^z
commute to decompose it as
exp(1.2*(x^y) + 3.4*(t^z)) = exp(1.2*(x^y)) * exp(3.4*(t^z))
Now, Gaigen 2.5 produces the correct results for the expression on the right-hand side above, but it does not produce the correct result for the left-hand side.
The problem lies in the logic in the exp
function that uses norm2_returns_scalar
; that norm is not the appropriate quantity to use whenever the pseudovector can appear because the pseudovector does not behave as desired under reversal.