vermaseren / form

The FORM project for symbolic manipulation of very big expressions
GNU General Public License v3.0
1.14k stars 136 forks source link

Missed matches with minus signs in symmetric functions #81

Open benruijl opened 8 years ago

benruijl commented 8 years ago

The example below does not match:

#-
V p1,p2;
CF vx(s);

L F = p1.p2*vx(-p1,p2);
id p1?.p2?*vx(-p1?,p2?) = 1;

Print +s;

.end

This could be a known limitation with minus signs in symmetric functions, but it is good to document when exactly matches start failing.

vermaseren commented 8 years ago

This is one of the problems with the (older) routines for symbols and dotproducts. Although they are very fast, they preceede lots of feaures. In this case the feature that p? can also match -p1. In the past this was seen as a subexpression, and that would not match in a dotproduct, and nowadays it is treated internally as a separate object of type MINVECTOR. This object is however not considered in the dotproduct routine. It looks like this could be fixed, provided good track is kept of the signs involved.

Whenever something is added it is not always easy to make a list of where it does not work and track that all down in the manual. I am sorry about that, but there are only 24 hours in the day.

Jos

On 15 apr. 2016, at 15:34, Ben Ruijl notifications@github.com wrote:

The example below does not match:

-

V p1,p2; CF vx(s);

L F = p1.p2_vx(-p1,p2); id p1?.p2?_vx(-p1?,p2?) = 1;

Print +s;

.end This could be a known limitation with minus signs in symmetric functions, but it is good to document when exactly matches start failing.

— 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/81