Date: 08/13/15-09:33:07 PM Z

Alternatively, with FeynCalc 9.0 (latest snapshot)

Quit[]

<< FeynCalc`

res = AbsoluteTiming[TID[Amp, q, UsePaVeBasis -> True]];

res[[1]]

-> 2.27062

(* Full reduction in terms of PaVe coefficient functions *)
res[[2]]

(* List of PaVe functions that appear in the final result *)

Cases[res, PaVe[__], Infinity] // Union

-> {PaVe[0, 0, 0,
0, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 0,
0, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 0,
0, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[0, 0, 1,
1, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 1,
1, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 1,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 1,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[0, 0, 2,
2, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[0, 0, 2,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[0, 0, 3,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[1, 1, 1,
1, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 1, 1,
1, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 1, 1,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 1, 1,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 1, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 1, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 2, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[1, 2, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[2, 2, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {Lambda^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[2, 2, 2,
2, {SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4]}, {mD^2, m1^2, m2^2}, PaVeAutoOrder -> True,
PaVeAutoReduce -> True],
PaVe[2, 2, 2,
2, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[2, 2, 2,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[2, 2, 3,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[2, 3, 3,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True],
PaVe[3, 3, 3,
3, {0, SPD[p3, p3], SPD[p3, p3] + 2 SPD[p3, p4] + SPD[p4, p4],
SPD[p4, p4], SPD[p3, p3], SPD[p4, p4]}, {Lambda^2, Lambda^2, m1^2,
m2^2}, PaVeAutoOrder -> True, PaVeAutoReduce -> True]}

Cheers,

> Hello,
>
> find below my quick attempt to get you going with the tensor integral.
> You need to do the final integrals probably by partial fraction
> decompoisition etc.
> (I am using my development version of FeynCalc, but it will work with older versions the same way).
>
> Regards,
> -----
> Rolf Mertig
> GluonVision GmbH
> Berlin, Germany
> -----
>
> In[1]:= !!tensorintegral.m
> <<HighEnergyPhysics`FeynCalc` ;
> Amp = FVD[q,mu] FVD[q,nu] FVD[q,al] FVD[q,be] FAD[{q,mD},{q,Lambda},
> {q,Lambda}, {p3+q,m1},{q-p4,m2}];
> Format[LineBreak[_]] := "";
> Print["Amp = ", Amp];
> test = Isolate[Factor1 @ Collect2[TID[Amp,q], q] // FCE, q, IsolateNames ->
> T];
> Print["\nafter tensor integral decomposition : "];
> Block[{T}, Print @ InputForm @ ReleaseHold @ test];
> Print["\nwhere the T[i] are functions of "];
> Print @ Cases2[DownValues[T],{MTD,SPD,FVD}]
>
> In[1]:= <<tensorintegral.m
> FeynCalc 7.0.0 Type ?FeynCalc for help or visit http://www.feyncalc.org/
> \$PrePrint is set to FeynCalcForm. Use FI and FC to change the display
> format.
> FeynArts 3.5 patched for use with FeynCalc
> Amp = FAD[{q, mD}, {q, Lambda}, {q, Lambda}, {p3 + q, m1}, {-p4 + q, m2}]
> FVD[q, al] FVD[q, be] FVD[q, mu] FVD[q, nu]
>
> after tensor integral decomposition :
> -((FAD[{q, Lambda}, {q, Lambda}, {q, mD}, {p3 + q, m1}, {-p4 + q, m2}]*
> (-(SPD[p3, q]^4*T[2]^4*T[3]) - SPD[p3, q]^3*SPD[p4, q]*T[2]^4*T[4] +
> SPD[p3, q]^2*SPD[p4, q]^2*T[2]^4*T[5] -
> SPD[p3, q]*SPD[p4, q]^3*T[2]^4*T[6] + SPD[p4, q]^4*T[2]^4*T[7] +
> SPD[p3, q]^2*SPD[q, q]*T[2]^5*T[8] -
> SPD[p3, q]*SPD[p4, q]*SPD[q, q]*T[2]^5*T[9] +
> SPD[p4, q]^2*SPD[q, q]*T[2]^5*T[10] + SPD[q, q]^2*T[2]^6*T[11]))/
> (D*T[1]*T[2]^8))
>
> where the T[i] are functions of
> {FVD[p3, al], FVD[p3, be], FVD[p3, mu], FVD[p3, nu], FVD[p4, al],
> FVD[p4, be], FVD[p4, mu], FVD[p4, nu], MTD[al, be], MTD[al, mu],
> MTD[al, nu], MTD[be, mu], MTD[be, nu], MTD[mu, nu], SPD[p3, p3],
> SPD[p3, p4], SPD[p4, p4]}
>
> In[2]:= TimeUsed[]
>
> Out[2]= 8.55

This archive was generated by hypermail 2b29 : 02/16/19-08:20:01 AM Z CET