FeynCalc manual (development version)

PaVeOrder

PaVeOrder[expr] orders the arguments of PaVe functions in expr in a standard way.

PaVeOrder[expr, PaVeOrderList -> { {..., s, u, ...}, {... m1^2, m2^2, ...}, ...}] orders the arguments of PaVe functions in expr according to the specified ordering lists. The lists may contain only a subsequence of the kinematic variables.

PaVeOrder has knows about symmetries in the arguments of PaVe functions with up to 6 legs.

Available symmetry relations are saved here

FileBaseName /@ FileNames["*.sym", FileNameJoin[{$FeynCalcDirectory, "Tables", 
     "PaVeSymmetries"}]]

{ScalarFunctions,TensorBFunctions,TensorCFunctions,TensorDFunctions,TensorEFunctions,TensorFFunctions}\{\text{ScalarFunctions},\text{TensorBFunctions},\text{TensorCFunctions},\text{TensorDFunctions},\text{TensorEFunctions},\text{TensorFFunctions}\}

For the time being, these tables contain relations for B-functions up to rank 10, C-functions up to rank 9, D-functions up to rank 8, E-functions (5-point functions) up to rank 7 and F-functions (6-point functions) up to rank 4. If needed, relations for more legs and higher tensor ranks can be calculated using FeynCalc and saved to PaVeSymmetries using template codes provided inside *.sym files.

See also

Overview, PaVeReduce.

Examples

ClearAll[t, s]

Use PaVeOrder to change the ordering of arguments in a D0 function

ex = D0[me2, me2, mw2, mw2, t, s, me2, 0, me2, 0]

D0(me2,me2,mw2,mw2,t,s,me2,0,me2,0)\text{D}_0(\text{me2},\text{me2},\text{mw2},\text{mw2},t,s,\text{me2},0,\text{me2},0)

PaVeOrder[ex, PaVeOrderList -> {me2, me2, 0, 0}]

D0(me2,s,mw2,t,mw2,me2,me2,0,0,me2)\text{D}_0(\text{me2},s,\text{mw2},t,\text{mw2},\text{me2},\text{me2},0,0,\text{me2})

Different orderings are possible

PaVeOrder[D0[me2, me2, mw2, mw2, t, s, me2, 0, me2, 0], PaVeOrderList -> {0, 0, me2, me2}]

D0(s,me2,t,mw2,mw2,me2,0,0,me2,me2)\text{D}_0(s,\text{me2},t,\text{mw2},\text{mw2},\text{me2},0,0,\text{me2},\text{me2})

When applying the function to an amplitude containing multiple PaVe functions, one can specify a list of possible orderings

ex = D0[a, b, c, d, e, f, m12, m22, m32, m42] + D0[me2, me2, mw2, mw2, t, s, me2, 0, me2, 0]

D0(a,b,c,d,e,f,m12,m22,m32,m42)+D0(me2,me2,mw2,mw2,t,s,me2,0,me2,0)\text{D}_0(a,b,c,d,e,f,\text{m12},\text{m22},\text{m32},\text{m42})+\text{D}_0(\text{me2},\text{me2},\text{mw2},\text{mw2},t,s,\text{me2},0,\text{me2},0)

PaVeOrder[ex, PaVeOrderList -> {{me2, me2, 0, 0}, {f, e}}]

D0(a,b,c,d,e,f,m12,m22,m32,m42)+D0(me2,s,mw2,t,mw2,me2,me2,0,0,me2)\text{D}_0(a,b,c,d,e,f,\text{m12},\text{m22},\text{m32},\text{m42})+\text{D}_0(\text{me2},s,\text{mw2},t,\text{mw2},\text{me2},\text{me2},0,0,\text{me2})

PaVeOrder can be useful to show that a particular linear combination of PaVe functions yields zero

diff = PaVe[0, 0, {p14, p30, p24, p13, p20, p40, p34, p23, p12, p10}, {m4, m3, m2,m1, m0}, 
    PaVeAutoOrder -> False] - PaVe[0, 0, {p10, p13, p12, p40, p30, p34, p20, p24, p14, p23}, 
    {m3, m0, m1, m4, m2}, PaVeAutoOrder -> False]

E00(p14,p30,p24,p13,p20,p40,p34,p23,p12,p10,m4,m3,m2,m1,m0)E00(p10,p13,p12,p40,p30,p34,p20,p24,p14,p23,m3,m0,m1,m4,m2)\text{E}_{00}(\text{p14},\text{p30},\text{p24},\text{p13},\text{p20},\text{p40},\text{p34},\text{p23},\text{p12},\text{p10},\text{m4},\text{m3},\text{m2},\text{m1},\text{m0})-\text{E}_{00}(\text{p10},\text{p13},\text{p12},\text{p40},\text{p30},\text{p34},\text{p20},\text{p24},\text{p14},\text{p23},\text{m3},\text{m0},\text{m1},\text{m4},\text{m2})

diff // PaVeOrder

00

In most cases, such simplifications require not only 1-to-1 relations but also linear relations between PaVe functions. For example, here we have a 1-to-1 relation between C1C_1 and C2C_2

PaVe[2, {p10, p12, p20}, {m1^2, m2^2, m3^2}, PaVeAutoOrder -> False] 
 
PaVeOrder[%]

C2(p10,p12,p20,m12,m22,m32)\text{C}_2\left(\text{p10},\text{p12},\text{p20},\text{m1}^2,\text{m2}^2,\text{m3}^2\right)

C1(p12,p20,p10,m22,m32,m12)\text{C}_1\left(\text{p12},\text{p20},\text{p10},\text{m2}^2,\text{m3}^2,\text{m1}^2\right)

It seems that PaVeOrder cannot rewrite C1C_1 in such a way, that the mass arguments appear as m22,m12,m32m_2^2, m_1^2, m_3^2

ex = PaVe[1, {p10, p12, p20}, {m1^2, m2^2, m3^2}, PaVeAutoOrder -> False]

C1(p10,p12,p20,m12,m22,m32)\text{C}_1\left(\text{p10},\text{p12},\text{p20},\text{m1}^2,\text{m2}^2,\text{m3}^2\right)

PaVeOrder[ex, PaVeOrderList -> {m2, m1, m3}]

C1(p10,p12,p20,m12,m22,m32)\text{C}_1\left(\text{p10},\text{p12},\text{p20},\text{m1}^2,\text{m2}^2,\text{m3}^2\right)

In fact, such a rewriting is possible, but it involves a linear relation between multiple PaVe functions. To avoid an accidental expression swell, by default PaVeOrder uses only 1-to-1 relations. Setting the option Sum to True allows the routine to return linear relations too

PaVeOrder[ex, PaVeOrderList -> {m2, m1, m3}, Sum -> True]

C0(p10,p20,p12,m22,m12,m32)C1(p10,p20,p12,m22,m12,m32)C2(p10,p20,p12,m22,m12,m32)-\text{C}_0\left(\text{p10},\text{p20},\text{p12},\text{m2}^2,\text{m1}^2,\text{m3}^2\right)-\text{C}_1\left(\text{p10},\text{p20},\text{p12},\text{m2}^2,\text{m1}^2,\text{m3}^2\right)-\text{C}_2\left(\text{p10},\text{p20},\text{p12},\text{m2}^2,\text{m1}^2,\text{m3}^2\right)

When trying to minimize the number of PaVe functions in the expression, one often has to try different orderings first

diff = (C0[0, SP[p, p], SP[p, p], 0, 0, 0] + 2 PaVe[1, {0, SP[p, p], SP[p, p]}, {0, 0, 0}] + 
    PaVe[1, {SP[p, p], SP[p, p], 0}, {0, 0, 0}])

C0(0,p2,p2,0,0,0)+2  C1(0,p2,p2,0,0,0)+C1(p2,p2,0,0,0,0)\text{C}_0\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+2 \;\text{C}_1\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+\text{C}_1\left(\overline{p}^2,\overline{p}^2,0,0,0,0\right)

This ordering doesn’t look very helpful

PaVeOrder[diff, PaVeOrderList -> {0, SP[p, p], SP[p, p]}, Sum -> True] 
 
% // PaVeOrder

C0(0,p2,p2,0,0,0)+2  C1(0,p2,p2,0,0,0)+C2(0,p2,p2,0,0,0)\text{C}_0\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+2 \;\text{C}_1\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+\text{C}_2\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)

C0(0,p2,p2,0,0,0)+2  C1(0,p2,p2,0,0,0)+C1(p2,p2,0,0,0,0)\text{C}_0\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+2 \;\text{C}_1\left(0,\overline{p}^2,\overline{p}^2,0,0,0\right)+\text{C}_1\left(\overline{p}^2,\overline{p}^2,0,0,0,0\right)

But this one does the job

PaVeOrder[diff, PaVeOrderList -> {SP[p, p], 0, SP[p, p]}, Sum -> True] 
 
% // PaVeOrder

C1(p2,0,p2,0,0,0)C2(p2,0,p2,0,0,0)\text{C}_1\left(\overline{p}^2,0,\overline{p}^2,0,0,0\right)-\text{C}_2\left(\overline{p}^2,0,\overline{p}^2,0,0,0\right)

00

Here are few simpler cases

diff = PaVe[0, {0}, {m2^2, m3^2}] + PaVe[1, {0}, {m3^2, m2^2}] + PaVe[1, {0}, {m2^2, m3^2}]

B0(0,m22,m32)+B1(0,m22,m32)+B1(0,m32,m22)\text{B}_0\left(0,\text{m2}^2,\text{m3}^2\right)+\text{B}_1\left(0,\text{m2}^2,\text{m3}^2\right)+\text{B}_1\left(0,\text{m3}^2,\text{m2}^2\right)

PaVeOrder[diff, PaVeOrderList -> {m2, m3}, Sum -> True]

00

diff = PaVe[0, {0}, {m2^2, m3^2}] + 2 PaVe[1, {0}, {m3^2, m2^2}] - PaVe[1, 1, {0}, {m2^2, m3^2}] + 
   PaVe[1, 1, {0}, {m3^2, m2^2}]

B0(0,m22,m32)+2  B1(0,m32,m22)B11(0,m22,m32)+B11(0,m32,m22)\text{B}_0\left(0,\text{m2}^2,\text{m3}^2\right)+2 \;\text{B}_1\left(0,\text{m3}^2,\text{m2}^2\right)-\text{B}_{11}\left(0,\text{m2}^2,\text{m3}^2\right)+\text{B}_{11}\left(0,\text{m3}^2,\text{m2}^2\right)

PaVeOrder[diff, Sum -> True, PaVeOrderList -> {m3, m2}]

00

diff = PaVe[0, {0, 0, 0}, {m2^2, m3^2, m4^2}] + 2 PaVe[1, {0, 0, 0}, {m2^2, m3^2, m4^2}] + 
   2 PaVe[1, {0, 0, 0}, {m3^2, m2^2, m4^2}] + PaVe[1, 1, {0, 0, 0}, {m2^2, m3^2, m4^2}] - 
   PaVe[1, 1, {0, 0, 0}, {m2^2, m4^2, m3^2}] + PaVe[1, 1, {0, 0, 0}, {m3^2, m2^2, m4^2}] + 
   2 PaVe[1, 2, {0, 0, 0}, {m4^2, m2^2, m3^2}]

C0(0,0,0,m22,m32,m42)+2  C1(0,0,0,m22,m32,m42)+2  C1(0,0,0,m32,m22,m42)+C11(0,0,0,m22,m32,m42)C11(0,0,0,m22,m42,m32)+C11(0,0,0,m32,m22,m42)+2  C12(0,0,0,m42,m22,m32)\text{C}_0\left(0,0,0,\text{m2}^2,\text{m3}^2,\text{m4}^2\right)+2 \;\text{C}_1\left(0,0,0,\text{m2}^2,\text{m3}^2,\text{m4}^2\right)+2 \;\text{C}_1\left(0,0,0,\text{m3}^2,\text{m2}^2,\text{m4}^2\right)+\text{C}_{11}\left(0,0,0,\text{m2}^2,\text{m3}^2,\text{m4}^2\right)-\text{C}_{11}\left(0,0,0,\text{m2}^2,\text{m4}^2,\text{m3}^2\right)+\text{C}_{11}\left(0,0,0,\text{m3}^2,\text{m2}^2,\text{m4}^2\right)+2 \;\text{C}_{12}\left(0,0,0,\text{m4}^2,\text{m2}^2,\text{m3}^2\right)

PaVeOrder[diff, Sum -> True, PaVeOrderList -> {m3, m2}]

00