Open benruijl opened 8 years ago
I believe that this is in the manual. When you exclude matches with a set, it is never clear which one is matched first. In your case with p1?.p2?!{p1?}, if FORM matches the p1 first, fine, but if it matches the p2 first, the restriction is still meaningless. Hence the manual tells you to use p1?!{p2?}.p2?!{p1?}. This way you are safe.
Jos
On 30 mrt. 2016, at 17:49, Ben Ruijl notifications@github.com wrote:
If one of the momenta inside a dot product is used to limit the options of the other momenta using a set, this requirement is ignored, if there is no other match for that momentum. The example below explains what I mean:
V p1,p2; CF ex;
L F = ex(p1)*p1.p1;
id ex(p1?)p1?.p2?!{p1?} = 1; * skipped (GOOD) id p1?.p2?!{p1?} = 1; \ matched (BUG)
Print +s; .end — You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/vermaseren/form/issues/70
I see it in the manual now. Whether this behavior is wanted without giving the user a warning about an undefined set restriction is something we can discuss at some point.
However, if I use your fix, it doesn't work. Only for functions, not for dot products.
Op wo 30 mrt. 2016 17:54 schreef Jos Vermaseren notifications@github.com:
I believe that this is in the manual. When you exclude matches with a set, it is never clear which one is matched first. In your case with p1?.p2?!{p1?}, if FORM matches the p1 first, fine, but if it matches the p2 first, the restriction is still meaningless. Hence the manual tells you to use p1?!{p2?}.p2?!{p1?}. This way you are safe.
Jos
On 30 mrt. 2016, at 17:49, Ben Ruijl notifications@github.com wrote:
If one of the momenta inside a dot product is used to limit the options of the other momenta using a set, this requirement is ignored, if there is no other match for that momentum. The example below explains what I mean:
V p1,p2; CF ex;
L F = ex(p1)*p1.p1;
id ex(p1?)p1?.p2?!{p1?} = 1; * skipped (GOOD) id p1?.p2?!{p1?} = 1; \ matched (BUG)
Print +s; .end — You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub < https://github.com/vermaseren/form/issues/70>
— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/vermaseren/form/issues/70#issuecomment-203499740
I have updated the bug report.
UPDATED
If one of the momenta inside a dot product is used to limit the options of the other momenta using a set, this requirement is ignored, if there is no other match for that momentum. The example below explains what I mean: