FeynCalc / feyncalc

Mathematica package for algebraic calculations in elementary particle physics.
https://feyncalc.github.io
GNU General Public License v3.0
310 stars 87 forks source link

Improved Tdec's basis symmetrizer to employ Pak's algorithm. #70

Closed vsht closed 3 years ago

vsht commented 4 years ago

Using the symmetrization algorithm of A. Pak from arXiv:1111.0868 makes Tdec much faster by drastically reducing the size of linear equations that need to be solved (in some cases, but especially for higher ranks).

Todo:

HBelusca commented 3 years ago

I'm interested to know how you are able to regenerate the TIDL entries; last time (i.e. last year) I tried with the explanation that was given in the TIDL file I was not really able to generate useful expressions (and not able to reproduce one or two examples that were already pre-calculated).

vsht commented 3 years ago

AFAIR the commented out code snippet in TIDL is exactly what I used.

HBelusca commented 3 years ago

AFAIR the commented out code snippet in TIDL is exactly what I used.

Yes OK, I see you improved the code snippet in d83b42e6c12ae8e8cd3553598862de809021b537 , while I was trying to use the older version back in 2018.


Another remark I had (to myself) back at the time, that seems to still hold with the new code snippet, is the following:

There seems to be a possible bug:
because the replacement rules lists reruX have been build 
independently for the general expression "z1" and for the isolated 
symbols "z2", it happens that if both of these contain the same type 
of Lorentz structures (let' s say scalar products), two same symbols 
"t1" would be produced for two different scalar products. 
This would lead to wrong replacements later on.

Do you think this situation could actually happen in real life?

vsht commented 3 years ago

Seems like there are no e-mail notifications on edits.

Do you think this situation could actually happen in real life?

Not sure if I understand correctly, but there is an explicit check to ensure that the abbreviated expression is identical to the original one upon applying the replacement rules

If[Collect2[
    FCE[(finExp //. finRu1 //. finRu2)] -
     FCE[(ChangeDimension[exp2, 4] /. D -> n)], FV, MT] =!= 0,
Print["Formula incosistent!"];
Abort[]
];

Would your case be able to bypass this check?

vsht commented 3 years ago

The new Tdec is now in master, FerSolve is available via the dev version of FeynHelpers.

HBelusca commented 3 years ago

Thanks for the information. Yes this check wasn't present originally when I had this comment, now I understand why you have added it.