Skip to content

Commit 901f5ef

Browse files
committed
Fixed a bug in FCLoopFindIntegralMappings for some rare cases for
integrals with numerators.
1 parent eef624d commit 901f5ef

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

FeynCalc/LoopIntegrals/FCLoopFindIntegralMappings.m

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,22 @@
5656
fcfpmVerbose::usage = "";
5757
lhs::usage ="";
5858

59+
(*
60+
Here it is crucial to compare not only U and F but also the reordered propagator powers.
61+
Otherwise, there might be cases, where the Feynman parameter related to e.g. a scalar product
62+
in the numerator cancels out from U and F so that one would match different integrals to each
63+
other
64+
*)
65+
5966
Options[FCLoopFindIntegralMappings] = {
6067
CharacteristicPolynomial -> Function[{U,F}, U+F],
6168
FCE -> False,
6269
FCI -> False,
6370
FCVerbose -> False,
6471
FinalSubstitutions -> {},
65-
Function -> Function[{U, F, charPoly, pows, head, int, sigma}, {head[int, Transpose[pows]], head[ExpandAll[U], ExpandAll[F]]}],
72+
73+
Function -> Function[{U, F, charPoly, pows, head, int, sigma},
74+
{head[int, Transpose[pows]], head[ExpandAll[U], ExpandAll[F],Transpose[pows][[3]]]}],
6675
List -> False,
6776
LightPak -> False,
6877
PreferredIntegrals -> {}
@@ -124,6 +133,7 @@
124133
time=AbsoluteTime[];
125134
FCPrint[1, "FCLoopFindIntegralMappings: Extracting the mappings.", FCDoControl -> fcfpmVerbose];
126135
(* 2nd element are the grouped mappings *)
136+
127137
res = Reap[(Sow[Sequence @@ #] & /@ pakFormInts), _][[2]];
128138

129139
If[ !FreeQ[expr,FCTopology],

Tests/LoopIntegrals/FCLoopFindIntegralMappings.test

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,5 +519,22 @@ tmp = FCLoopFindIntegralMappings[{GLI[
519519
Hold[SPD][nb] -> 0, Hold[SPD][n, nb] -> 2}, {}]}];
520520
$ParallelizeFeynCalc = False; tmp",
521521
"{{}, {GLI[topology10, {1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0}],
522-
GLI[topology10, {1, 1, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0}]}}"}
522+
GLI[topology10, {1, 1, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0}]}}"},
523+
524+
{"fcstFCLoopFindIntegralMappings-ID15",
525+
"FCLoopFindIntegralMappings[{GLI[
526+
fctopology10C, {1, 0, 1, 1, 1, 0, -1}],
527+
GLI[fctopology10C, {1, 0, 1, 1, 1, 0, 0}]},
528+
{FCTopology[
529+
fctopology10C, {SFAD[{{k1, 0}, {0, 1}, 1}],
530+
SFAD[{{k1 + q1, 0}, {0, 1}, 1}], SFAD[{{k2, 0}, {mt^2, 1}, 1}],
531+
SFAD[{{k2 + q2, 0}, {mt^2, 1}, 1}],
532+
SFAD[{{k1 + k2, 0}, {mt^2, 1}, 1}],
533+
SFAD[{{k1 + k2 + q1 + q2, 0}, {mt^2, 1}, 1}],
534+
SFAD[{{0, k1 . q2}, {0, 1}, 1}]}, {k1, k2}, {q1,
535+
q2}, {Hold[Pair][Momentum[q1, D], Momentum[q1, D]] -> 0,
536+
Hold[Pair][Momentum[q2, D], Momentum[q2, D]] -> 0,
537+
Hold[Pair][Momentum[q1, D], Momentum[q2, D]] -> s/2}, {}]}]",
538+
"{{}, {GLI[fctopology10C, {1, 0, 1, 1, 1, 0, -1}], GLI[fctopology10C, {1, 0, 1, 1, 1, 0, 0}]}}"
539+
}
523540
});

0 commit comments

Comments
 (0)