FORMSoft - An automated tool for 1-loop soft anomalous dimension calculation

git clone git://git.bcharge.de/FORMSoft.git

About | Log | Files | Refs

commit 58d6695f3f4cd0f633b01d6c21e16b8ed57be09e
parent 32033bd3055a8a5fe0e7d64a3a1734d74f92faa8
Author: Bakar Chargeishvili <bakar@bcharge.de>
Date:   Sun, 27 Aug 2023 01:31:18 +0200

Add more examples

Diffstat:
ASoft.gggg.frm | 301+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ASoft.ggtttt.frm | 425+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ASoft.uutttt.frm | 354+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asimp.py | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 1164 insertions(+), 0 deletions(-)

diff --git a/Soft.gggg.frm b/Soft.gggg.frm @@ -0,0 +1,301 @@ +#- +#:SmallSize 5000000 +#:LargeSize 20000000 +#:WorkSpace 50000000 +#:MaxTermSize 300000 +#:TermsInSmall 30000 +*#:ContinuationLines 100000 +off stats; +format 75; +auto s sM; +auto i iM; +auto s tag; + + +#define HaveFermions "0" +#define FermionOrder "Automatic" +#define FermionChains "Weyl" +#define Gamma5Test "0" +#define Evanescent "0" +#define HaveSUN "1" +#define SUNN "3" + +s Alfa, Alfa2, Alfas, Alfas2, CA, CA2, CB, CB2, CBA, CBA2, CW, CW2, D, + EL, GS, MA0, MA02, MA0tree, MA0tree2, MB, MB2, MC, MC2, MD, MD2, ME, + ME2, MGl, MGl2, MH, Mh0, Mh02, Mh0tree, Mh0tree2, MH2, MHH, MHH2, + MHHtree, MHHtree2, MHp, MHp2, MHptree, MHptree2, Mino3, Mino3C, ML, + ML2, MM, MM2, MS, MS2, MT, MT2, MU, MU2, MW, MW2, MZ, MZ2, Pi, S, + S34, T, T14, T24, TB, TB2, U; +cf Den,Denom, dirM, Hel, List, MASf, MASf2, MCha, MCha2, Mf, Mf2, MHiggs, + MHiggs2, MHiggstree, MHiggstree2, MNeu, MNeu2, MSf, MSf2, pol, polc, + SUNF, SUND, SUNSum, SUNT, SpinorU, SpinorUb, SpinorV, SpinorVb; +S eps,[L_beta],[alpha_s/pi],[L_1],[L_2]; +S gamma,[ln(4*Pi)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v5)],[ln(v4.v5)]; +S [ln((v1.n)^2/n^2)],[ln((v2.n)^2/n^2)],[ln((v3.n)^2/n^2)],[ln((v4.n)^2/n^2)]; +S [ln(-v1.v2/2)],[ln(v1.v3/2)],[ln(v1.v4/2)],[ln(v2.v3/2)],[ln(v2.v4/2)],[ln(-v3.v4/2)]; +S [ln(v1.v2)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v4)]; +S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)], [ln(-1)]; +S [ln(nu1)], [ln(nu2)], [ln(nu3)], [ln(nu4)]; +d 4; + + + +AutoDeclare I Dir=4, iM, Lor=4,ind; + +#define LoopMomenta "q1,q2" + +#define Vectors "`LoopMomenta', + eta1,eta2,eta3,eta4,eta5, + e1,e2,e3,e4,e5, + ec1,ec2,ec3,ec4,ec5, + z1,z2,z3,z4,z5, + zc1,zc2,zc3,zc4,zc5, + k1,k2,k3,k4,k5" +v `Vectors'; + +v k; +s m; +f g,g1,g2,dummy; +v g6,g7; + +cf rat; + +V v1,v2,v3,v4,v5,l,n; +cf Ngluon; + +Tensor Tr(cyclic),Tp,f(antisymmetric),ff(rcyclic), d(symmetric); +Function TM,TT; +Symbols a,nf,NF,NA,cF,cA,[cF-cA/6]; +Dimension NA; +AutoDeclare I j=NA,Glu=NA; +AutoDeclare I n1=NA,m1=NA, A=NA; +Dimension NF; +AutoDeclare I i=NF,Col=NF; +I iA=NF,iB=NF,iAb=NF,iBb=NF; + +*************************************************** +* ____ _ _ _ * +* / ___|___ | | ___ _ __ | |__ __ _ ___(_)___ * +*| | / _ \| |/ _ \| '__| | '_ \ / _` / __| / __|* +*| |__| (_) | | (_) | | | |_) | (_| \__ \ \__ \* +* \____\___/|_|\___/|_| |_.__/ \__,_|___/_|___/* +*************************************************** +#define ColBasDim "9" +G proj1 = d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(NF^2-1); +G proj2 = NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(NF^2-4); +G proj3 = SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100)*Denom(NF); +G proj4 = 1/2*(d_(Glu1,Glu3)*d_(Glu2,Glu4)-d_(Glu1,Glu4)*d_(Glu3,Glu2)) + -proj3; +G proj5 = NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF+2)) + +1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100) + -1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100) + +1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4) + +d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF+1)); +G proj6 = -NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF-2)) + -1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100) + +1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100) + +1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4) + -d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF-1)); +G proj7 = i_*SUND(Glu3,Glu4,Glu100)*SUNF(Glu1,Glu2,Glu100) + +i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100); +G proj8 = i_*SUND(Glu3,Glu4,Glu100)*SUNF(Glu1,Glu2,Glu100) + -i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100); +G proj9 = 1/2*(SUND(Glu1,Glu3,Glu100)*i_*SUNF(Glu2,Glu100,Glu4) + -SUND(Glu2,Glu100,Glu4)*i_*SUNF(Glu1,Glu3,Glu100)); + +.sort +Skip; +#do i=1,`ColBasDim' + L proj`i'b = proj`i'; +#enddo +Multiply replace_(Col1,Col101,Col2,Col102,Col3,Col103,Col4,Col104,Glu100,Glu200,Glu1,Glu101,Glu2,Glu102,Glu3,Glu103,Glu4,Glu104,Glu201,Glu301); +id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +id i_ = -i_; +.sort +#call SUn +id a = 1/2; +id NA = NF^2-1; +.sort +Skip; + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + G P`i'x`j' = + proj`i' * proj`j'b*d_(Glu1,Glu101)*d_(Glu2,Glu102)*d_(Glu3,Glu103)*d_(Glu4,Glu104); +#enddo +#enddo + +#call SUn +id a = 1/2; +id NA = NF^2-1; + +id NF^m? = dummy(NF^m); +repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1)); +*collect dummy; +.sort +PolyRatFun rat; +*id dummy(?num)*Denom(?den)=rat(?num,?den); +id Denom(?den) = rat(1,?den); +id dummy(?num) = rat(?num,1); +*id dummy(?num)*Denom(?den)=rat(?num,?den); +.sort +PolyRatFun; +id rat(S?,T?) = S/T; +.sort +id dummy(?k) = exp_(?k,1); +.sort +******************************************* +* !!!ONLY TRUE FOR THE DIAGONAL MATRIX!!! * +******************************************* +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + L invP`i'x`j' = Denom(P`i'x`j'); +#enddo +#enddo +id Denom(0) = 0; + +.sort +Print; +.sort +Skip; + +* +* partial amplitudes (kinematical parts) +* +L A12 = v1(n1)/(-v1.l)*(-v2(m1))/(v2.l)*Ngluon(n1,m1)/l.l; +L A13 = (-v1(n1))/(v1.l)*(-v3(m1))/(v3.l)*Ngluon(n1,m1)/l.l; +L A14 = (-v1(n1))/(v1.l)*(-v4(m1))/(v4.l)*Ngluon(n1,m1)/l.l; +L A23 = v2(n1)/(-v2.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l; +L A24 = v2(n1)/(-v2.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l; +L A34 = v3(n1)/(-v3.l)*(-v4(m1))/(v4.l)*Ngluon(n1,m1)/l.l; + +* +* Color factors +* +L C12 = -SUNF(Glu99,Glu101,Glu1)*SUNF(Glu99,Glu2,Glu102)*d_(Glu3,Glu103)*d_(Glu4,Glu104); +L C13 = -SUNF(Glu99,Glu1,Glu101)*SUNF(Glu99,Glu103,Glu3)*d_(Glu2,Glu102)*d_(Glu4,Glu104); +L C14 = -SUNF(Glu99,Glu1,Glu101)*SUNF(Glu99,Glu104,Glu4)*d_(Glu2,Glu102)*d_(Glu3,Glu103); +L C23 = -SUNF(Glu99,Glu102,Glu2)*SUNF(Glu99,Glu3,Glu103)*d_(Glu1,Glu101)*d_(Glu4,Glu104); +L C24 = -SUNF(Glu99,Glu102,Glu2)*SUNF(Glu99,Glu4,Glu104)*d_(Glu1,Glu101)*d_(Glu3,Glu103); +L C34 = -SUNF(Glu99,Glu3,Glu103)*SUNF(Glu99,Glu104,Glu4)*d_(Glu1,Glu101)*d_(Glu2,Glu102); + +id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +.sort + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' +L [S(alpha_s)_`i'x`j'] = proj`i' * proj`j'b * +( + +C12*A12 + +C13*A13 + +C14*A14 + +C23*A23 + +C24*A24 + +C34*A34 +); +#enddo +#enddo + +id Ngluon(n1?,m1?) = d_(n1,m1)-(l(n1)*n(m1)/n.l + n(n1)*l(m1)/n.l) + +l(n1)*l(m1)/n.l^2*n.n; +* +* +* substituition of integrals; measure d^Dl/(2*Pi)^D; +* it als involves the prefactor (-i)*g^2 to obtain the powers of alpha_s +* +* the substitutions below assume: +* vA.vA=0, vB.vB=0, v1.v1=1, v2.v2=1 +* + +id v1.v2*l.l^-1*v1.l^-1*v2.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(-v1.v2/2)] + gamma - [ln(4*Pi)]) ); + +id v1.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(v1.v3/2)] + gamma - [ln(4*Pi)]) ); + +id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(v1.v4/2)] + gamma - [ln(4*Pi)]) ); + +id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(v2.v3/2)] + gamma - [ln(4*Pi)]) ); + +id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(v2.v4/2)] + gamma - [ln(4*Pi)]) ); + +id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(-v3.v4/2)] + gamma - [ln(4*Pi)]) ); + + +id v1.n*l.l^-1*v1.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v1.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v2.n*l.l^-1*v2.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v2.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v3.n*l.l^-1*v3.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v3.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v4.n*l.l^-1*v4.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v4.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + + +*id v3.v3*l.l^-1*v3.l^-2 = - [alpha_s/pi] * eps^-1; + +*id v4.v4*l.l^-1*v4.l^-2 = - [alpha_s/pi] * eps^-1; + +id n.n*l.l^-1*n.l^-2 = - [alpha_s/pi] * eps^-1; +.sort; + + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + #$summ = 0; + #do k=1,`ColBasDim' + #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j']*(-eps); + #enddo + L [Gamma(alpha_s)_`i'x`j'] = `$summ'; +#enddo +#enddo + +#call SUn +id a = 1/2; +id NA = NF^2-1; +*id Denom(?k) = exp_(?k,-1); +.sort +Bracket Denom; +.sort +id NF^m? = dummy(NF^m); +repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1)); +*collect dummy; +.sort +PolyRatFun rat; +id dummy(?num)*Denom(?den)=rat(?num,?den); +.sort +PolyRatFun; +id rat(S?,T?) = S/T; +.sort +id dummy(?k) = exp_(?k,1); + +*id [ln((v1.n)^2/n^2)] = [ln(1/2)]; +*id [ln((v2.n)^2/n^2)] = [ln(1/2)]; +*id [ln((v3.n)^2/n^2)] = [ln(1/2)]; +*id [ln((v4.n)^2/n^2)] = [ln(1/2)]; +id [ln((v1.n)^2/n^2)] = [ln(nu1)]; +id [ln((v2.n)^2/n^2)] = [ln(nu2)]; +id [ln((v3.n)^2/n^2)] = [ln(nu3)]; +id [ln((v4.n)^2/n^2)] = [ln(nu4)]; +id [ln(-v1.v2/2)] = [ln(1/2)]+[ln(v1.v2)]+[ln(-1)]; +id [ln(-v3.v4/2)] = [ln(1/2)]+[ln(v3.v4)]+[ln(-1)]; +id [ln(v1.v3/2)] = [ln(1/2)]+[ln(v1.v3)]; +id [ln(v1.v4/2)] = [ln(1/2)]+[ln(v1.v4)]; +id [ln(v2.v3/2)] = [ln(1/2)]+[ln(v2.v3)]; +id [ln(v2.v4/2)] = [ln(1/2)]+[ln(v2.v4)]; +id [ln(v1.v2)] = 0; +id [ln(v3.v4)] = 0; +*id [ln(-v1.v2/2)] = [ln(-1/2)]; +*id NF^(-1) = cA-2*cF; +*id NF = cA; + +AntiBracket NF; +Print; +.end diff --git a/Soft.ggtttt.frm b/Soft.ggtttt.frm @@ -0,0 +1,425 @@ +#- +#:SmallSize 5000000 +#:LargeSize 20000000 +#:WorkSpace 50000000 +#:MaxTermSize 300000 +#:TermsInSmall 30000 +*#:ContinuationLines 100000 +off stats; +format 75; +auto s sM; +auto i iM; + + +#define HaveFermions "0" +#define FermionOrder "Automatic" +#define FermionChains "Weyl" +#define Gamma5Test "0" +#define Evanescent "0" +#define HaveSUN "1" +#define SUNN "3" + +auto s tag; +s pi,Alfa, Alfa2, Alfas, Alfas2, CA, CA2, CB, CB2, CBA, CBA2, CW, CW2, D, + EL, GS, MA0, MA02, MA0tree, MA0tree2, MB, MB2, MC, MC2, MD, MD2, ME, + ME2, MGl, MGl2, MH, Mh0, Mh02, Mh0tree, Mh0tree2, MH2, MHH, MHH2, + MHHtree, MHHtree2, MHp, MHp2, MHptree, MHptree2, Mino3, Mino3C, ML, + ML2, MM, MM2, MS, MS2, MT, MT2, MU, MU2, MW, MW2, MZ, MZ2, Pi, S, + S34, T, T14, T24, TB, TB2, U; +cf Den,Denom, dirM, Hel, List, MASf, MASf2, MCha, MCha2, Mf, Mf2, MHiggs, + MHiggs2, MHiggstree, MHiggstree2, MNeu, MNeu2, MSf, MSf2, pol, polc, + SUNF, SUND, SUNSum, SUNT, SpinorU, SpinorUb, SpinorV, SpinorVb; +CF Pj10p10, Pj10m10, Pj27, Pj0; +S eps,[L_beta],[alpha_s/pi],[L_1],[L_2],[L_3],[L_4]; +S [L_beta_34], [L_beta_35], [L_beta_36], [L_beta_45], [L_beta_46], [L_beta_56]; +S gamma,[ln(4*Pi)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v5)],[ln(v4.v5)], [ln(v1.v5)],[ln(v1.v6)],[ln(v2.v5)],[ln(v2.v6)]; +S [ln((v1.n)^2/n^2)],[ln((v2.n)^2/n^2)],[ln((v5.n)^2/n^2)],[ln(-v1.v2/2)],[ln(v1.v5/2)],[ln(v2.v5/2)]; +S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)], [ln(2)]; +Auto S A; +d 4; + + + +AutoDeclare I Dir=4, iM, Lor=4,ind; + +#define LoopMomenta "q1,q2" + +#define Vectors "`LoopMomenta', + eta1,eta2,eta3,eta4,eta5, + e1,e2,e3,e4,e5, + ec1,ec2,ec3,ec4,ec5, + z1,z2,z3,z4,z5, + zc1,zc2,zc3,zc4,zc5, + k1,k2,k3,k4,k5" +v `Vectors'; + +v k; +s m; +f g,g1,g2,dummy; +v g6,g7; + +cf rat; + +V v1,v2,v3,v4,v5,v6,l,n; +cf Ngluon; + +S u; + +Tensor Tr(cyclic),Tp,f(antisymmetric),ff(rcyclic), d(symmetric); +Function TM,TT; +Symbols a,nf,NF,NA,cF,cA,[cF-cA/6]; +Dimension NA; +AutoDeclare I j=NA,Glu=NA; +AutoDeclare I n1=NA,m1=NA; +Dimension NF; +AutoDeclare I i=NF,Col=NF; +I iA=NF,iB=NF,iAb=NF,iBb=NF; + +*************************************************** +* ____ _ _ _ * +* / ___|___ | | ___ _ __ | |__ __ _ ___(_)___ * +*| | / _ \| |/ _ \| '__| | '_ \ / _` / __| / __|* +*| |__| (_) | | (_) | | | |_) | (_| \__ \ \__ \* +* \____\___/|_|\___/|_| |_.__/ \__,_|___/_|___/* +*************************************************** + +#define ColBasDim "14" +L proj1 = d_(Glu1999,Glu2999)*d_(Col3999,Col4999)*d_(Col5999,Col6999); +L proj2 = d_(Glu1999,Glu2999)*SUNT(Glu100,Col4999,Col3999)*SUNT(Glu100,Col6999,Col5999); +L proj3 = i_*SUNF(Glu1999,Glu2999,Glu100)*d_(Col3999,Col4999)*SUNT(Glu100,Col6999,Col5999); +L proj4 = i_*SUNF(Glu1999,Glu2999,Glu100)*d_(Col5999,Col6999)*SUNT(Glu100,Col4999,Col3999); +L proj5 = SUND(Glu1999,Glu2999,Glu100)*d_(Col3999,Col4999)*SUNT(Glu100,Col6999,Col5999); +L proj6 = SUND(Glu1999,Glu2999,Glu100)*d_(Col5999,Col6999)*SUNT(Glu100,Col4999,Col3999); +L proj7 = i_*SUNF(Glu1999,Glu2999,Glu100)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*i_*SUNF(Glu101,Glu102,Glu100); +L proj8 = i_*SUNF(Glu1999,Glu2999,Glu100)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*SUND(Glu101,Glu102,Glu100); +L proj9 = SUND(Glu1999,Glu2999,Glu100)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*i_*SUNF(Glu101,Glu102,Glu100); +L proj10 = SUND(Glu1999,Glu2999,Glu100)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*SUND(Glu101,Glu102,Glu100); +L proj11 = SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*Pj10p10(Glu1999,Glu2999,Glu101,Glu102); +L proj12 = SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*Pj10m10(Glu1999,Glu2999,Glu101,Glu102); +L proj13 = SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*Pj27(Glu1999,Glu2999,Glu101,Glu102); +L proj14 = SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*Pj0(Glu1999,Glu2999,Glu101,Glu102); + +id Pj10p10(Glu1?,Glu2?,Glu3?,Glu4?) = (1/2*(d_(Glu1,Glu3)*d_(Glu2,Glu4)-d_(Glu1,Glu4)*d_(Glu3,Glu2)) + -SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100)*Denom(NF)); +id Pj10m10(Glu1?,Glu2?,Glu3?,Glu4?) = 1/2*(SUND(Glu1,Glu3,Glu100)*i_*SUNF(Glu2,Glu100,Glu4) + -SUND(Glu2,Glu100,Glu4)*i_*SUNF(Glu1,Glu3,Glu100)); +id Pj27(Glu1?,Glu2?,Glu3?,Glu4?) = (NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF+2)) + +1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100) + -1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100) + +1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4) + +d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF+1))); +id Pj0(Glu1?,Glu2?,Glu3?,Glu4?) = (-NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF-2)) + -1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100) + +1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100) + +1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4) + -d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF-1))); + +.sort +Skip; +#do i=1,`ColBasDim' + L proj`i'b = proj`i'; +#enddo +Multiply replace_(Glu1999,Glu1,Glu2999,Glu2,Col3999,Col3,Col4999,Col4,Col5999,Col5,Col6999,Col6,Glu100,Glu200,Glu101,Glu201,Glu102,Glu202); +id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +id i_ = -i_; +.sort +#call SUn +id a = 1/2; +id NA = NF^2-1; +.sort + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + G P`i'x`j' = + proj`i' * proj`j'b*d_(Glu1999,Glu1)*d_(Glu2999,Glu2)*d_(Col3999,Col3)*d_(Col4999,Col4)*d_(Col5999,Col5)*d_(Col6999,Col6); +#enddo +#enddo +L t = d_(Col1,Col2)*d_(Col3,Col4)*d_(Col5,Col6)*d_(Col1,Col2)*SUNT(Glu300,Col4,Col3)*SUNT(Glu300,Col6,Col5); + +#call SUn +id a = 1/2; +id NA = NF^2-1; +.sort +Bracket Denom; +.sort +id NF^m? = dummy(NF^m); +repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1)); +*collect dummy; +.sort +PolyRatFun rat; +id dummy(?num)=rat(?num,1); +id Denom(?den)=rat(1,?den); +.sort +PolyRatFun; +id rat(S?,T?) = S/T; +.sort +*B u; +*.sort +*L t = [Gamma(alpha_s)_1x1][u^10]; +id dummy(?k) = exp_(?k,1); +.sort +id NF = 3; +id 1/NF = 1/3; +Print; +.sort +******************************************* +* !!!ONLY TRUE FOR THE DIAGONAL MATRIX!!! * +******************************************* +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + L invP`i'x`j' = Denom(P`i'x`j'); +#enddo +#enddo +id Denom(0) = 0; + +.sort +Print; +.sort +Skip; + +* +* partial amplitudes (kinematical parts) +* +*L A1x2 = (+v1(n1))/(-v1.l)*(-v2(m1))/(+v2.l)*Ngluon(n1,m1)/l.l; +*L A1x3 = (+v1(n1))/(+v1.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +*L A1x4 = (+v1(n1))/(+v1.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A1x5 = (+v1(n1))/(+v1.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A1x6 = (+v1(n1))/(+v1.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A2x3 = (-v2(n1))/(+v2.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +*L A2x4 = (-v2(n1))/(+v2.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A2x5 = (-v2(n1))/(+v2.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A2x6 = (-v2(n1))/(+v2.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A3x4 = (+v3(n1))/(+v3.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A3x5 = (+v3(n1))/(+v3.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A3x6 = (+v3(n1))/(+v3.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A4x5 = (-v4(n1))/(+v4.l)*(+v5(m1))/(v5.l)*Ngluon(n1,m1)/l.l; +*L A4x6 = (-v4(n1))/(+v4.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A5x6 = (+v5(n1))/(+v5.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; + +L A1x2 = (-v1(n1))/(-v1.l)*(-v2(m1))/(+v2.l)*Ngluon(n1,m1)/l.l; +L A1x3 = (-v1(n1))/(-v1.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +L A1x4 = (-v1(n1))/(-v1.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L A1x5 = (-v1(n1))/(-v1.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +L A1x6 = (-v1(n1))/(-v1.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +L A2x3 = (-v2(n1))/(-v2.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +L A2x4 = (-v2(n1))/(-v2.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L A2x5 = (-v2(n1))/(-v2.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +L A2x6 = (-v2(n1))/(-v2.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +L A3x4 = (+v3(n1))/(+v3.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L A3x5 = (+v3(n1))/(+v3.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +L A3x6 = (+v3(n1))/(+v3.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +L A4x5 = (-v4(n1))/(+v4.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +L A4x6 = (-v4(n1))/(+v4.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +L A5x6 = (+v5(n1))/(+v5.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; + + +L Self1 = v3(n1)/(v3.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l; +L Self2 = (-v4(n1))/(v4.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L Self3 = v5(n1)/(v5.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l; +L Self4 = v6(n1)/(v6.l)*v6(m1)/(-v6.l)*Ngluon(n1,m1)/l.l; + + +L C1x2 = (-i_)*SUNF(Glu99,Glu1,Glu1999)*(-i_)*SUNF(Glu99,Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x3 = SUNT(Glu99,Col3,Col3999)*(-i_)*SUNF(Glu99,Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x4 = SUNT(Glu99,Col4999,Col4)*(-i_)*SUNF(Glu99,Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x5 = SUNT(Glu99,Col5,Col5999)*(-i_)*SUNF(Glu99,Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C1x6 = SUNT(Glu99,Col6999,Col6)*(-i_)*SUNF(Glu99,Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C2x3 = SUNT(Glu99,Col3,Col3999)*(-i_)*SUNF(Glu99,Glu2,Glu2999)*d_(Glu1,Glu1999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C2x4 = SUNT(Glu99,Col4999,Col4)*(-i_)*SUNF(Glu99,Glu2,Glu2999)*d_(Glu1,Glu1999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C2x5 = SUNT(Glu99,Col5,Col5999)*(-i_)*SUNF(Glu99,Glu2,Glu2999)*d_(Glu1,Glu1999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C2x6 = SUNT(Glu99,Col6999,Col6)*(-i_)*SUNF(Glu99,Glu2,Glu2999)*d_(Glu1,Glu1999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C3x4 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col4999,Col4)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C3x5 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col5,Col5999)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C3x6 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col6999,Col6)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C4x5 = SUNT(Glu99,Col4999,Col4)*SUNT(Glu99,Col5,Col5999)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col6,Col6999)*1; +L C4x6 = SUNT(Glu99,Col4999,Col4)*SUNT(Glu99,Col6999,Col6)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*1; +L C5x6 = SUNT(Glu99,Col5,Col5999)*SUNT(Glu99,Col6999,Col6)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*1; +L CSelf1 = SUNT(Glu99,Col303,Col3999)*SUNT(Glu99,Col3,Col303)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999); +L CSelf2 = SUNT(Glu99,Col4999,Col304)*SUNT(Glu99,Col304,Col4)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999); +L CSelf3 = SUNT(Glu99,Col305,Col5999)*SUNT(Glu99,Col5,Col305)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999); +L CSelf4 = SUNT(Glu99,Col6999,Col306)*SUNT(Glu99,Col306,Col6)*d_(Glu1,Glu1999)*d_(Glu2,Glu2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999); + + +*id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +.sort + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' +L [S(alpha_s)_`i'x`j'] = proj`i' * proj`j'b * +( +* +C1x2*A1x2 + +C1x3*A1x3*tag1 +* +C1x4*A1x4 +* +C1x5*A1x5 +* +C1x6*A1x6 + +C2x3*A2x3*tag2 +* +C2x4*A2x4 +* +C2x5*A2x5 +* +C2x6*A2x6 + +C3x4*A3x4*tag3 + +C3x5*A3x5*tag4 + +C3x6*A3x6*tag5 +* +C4x5*A4x5 +* +C4x6*A4x6 +* +C5x6*A5x6 +* +CSelf1*Self1/2 +* +CSelf2*Self2/2 +* +CSelf3*Self3/2 +* +CSelf4*Self4/2 +); +#enddo +#enddo + +L test = Self1; +id Ngluon(n1?,m1?) = d_(n1,m1)-(l(n1)*n(m1)/n.l + n(n1)*l(m1)/n.l); +* +l(n1)*l(m1)/n.l^2*n.n; +.sort +* +* +* substituition of integrals; measure d^Dl/(2*Pi)^D; +* it als involves the prefactor (-i)*g^2 to obtain the powers of alpha_s +* +* the substitutions below assume: +* vA.vA=0, vB.vB=0, v1.v1=1, v2.v2=1 +* + +id v1.v2*l.l^-1*v1.l^-1*v2.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(-v1.v2/2)] + gamma - [ln(4*Pi)]) ); + +id v1.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v6*l.l^-1*v1.l^-1*v6.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v6)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v5*l.l^-1*v2.l^-1*v5.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v6*l.l^-1*v2.l^-1*v6.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v6)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_34]; + +id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_35]; + +id v3.v6*l.l^-1*v3.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_36]; + +id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_45]; + +id v4.v6*l.l^-1*v4.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_46]; + +id v5.v6*l.l^-1*v5.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_56]; + + +id v1.n*l.l^-1*v1.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v1.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v2.n*l.l^-1*v2.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v2.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v3.n*l.l^-1*v3.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_1]; + +id v4.n*l.l^-1*v4.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_2]; + +id v5.n*l.l^-1*v5.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_3]; + +id v6.n*l.l^-1*v6.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_4]; + + +id v3.v3*l.l^-1*v3.l^-2 = - [alpha_s/pi] * eps^-1; + +id v4.v4*l.l^-1*v4.l^-2 = - [alpha_s/pi] * eps^-1; + +id v5.v5*l.l^-1*v5.l^-2 = - [alpha_s/pi] * eps^-1; + +id v6.v6*l.l^-1*v6.l^-2 = - [alpha_s/pi] * eps^-1; + +id n.n*l.l^-1*n.l^-2 = - [alpha_s/pi] * eps^-1; +.sort; + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + #$summ = 0; + #do k=1,`ColBasDim' + #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j']*(-eps); + #message `i' `j' `k'; + #enddo + G [G^qqttg_`i'x`j'] = `$summ'; +#enddo +#enddo + + +#call SUn +id a = 1/2; +id NA = NF^2-1; +*id Denom(?k) = exp_(?k,-1); +.sort +Bracket Denom; +.sort +id NF^m? = dummy(NF^m); +repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1)); +*collect dummy; +.sort +PolyRatFun rat; +id dummy(?num)*Denom(?den)=rat(?num,?den); +.sort +PolyRatFun; +id rat(S?,T?) = S/T; +.sort +*B u; +*.sort +*L t = [Gamma(alpha_s)_1x1][u^10]; +id dummy(?k) = exp_(?k,1); + +id [ln((v1.n)^2/n^2)] = [ln(1/2)]; +id [ln((v2.n)^2/n^2)] = [ln(1/2)]; +id [ln(-v1.v2/2)] = [ln(-1/2)]; + +id [ln(1/2)] = -[ln(2)]; +id [ln(-1/2)] = i_*pi-[ln(2)]; + +*s=16*MT^2 +*id [ln(v1.v3)] = [ln(MT/sqrt(s))] +id [ln(v1.v3)] = -2*[ln(2)]; +id [ln(v1.v4)] = -2*[ln(2)]; +id [ln(v1.v5)] = -2*[ln(2)]; +id [ln(v1.v6)] = -2*[ln(2)]; +id [ln(v2.v3)] = -2*[ln(2)]; +id [ln(v2.v4)] = -2*[ln(2)]; +id [ln(v2.v5)] = -2*[ln(2)]; +id [ln(v2.v6)] = -2*[ln(2)]; +id [ln(s/(2*MT^2))] = 3*[ln(2)]; +id [L_beta_34] = -1; +id [L_beta_35] = -1; +id [L_beta_36] = -1; +id [L_beta_45] = -1; +id [L_beta_46] = -1; +id [L_beta_56] = -1; +.sort + +Multiply replace_(NF,3); +id NF = 3; +id 1/NF = 1/3; +id i_ = 0; +.sort +Print; +*B [L_1],[L_2],[L_3],[L_4]; +AntiBracket NF; +.sort + +.store + +save Soft.sav; +.end diff --git a/Soft.uutttt.frm b/Soft.uutttt.frm @@ -0,0 +1,354 @@ +#- +#:SmallSize 5000000 +#:LargeSize 20000000 +#:WorkSpace 50000000 +#:MaxTermSize 300000 +#:TermsInSmall 30000 +*#:ContinuationLines 100000 +off stats; +format 75; +auto s sM; +auto i iM; + + +#define HaveFermions "0" +#define FermionOrder "Automatic" +#define FermionChains "Weyl" +#define Gamma5Test "0" +#define Evanescent "0" +#define HaveSUN "1" +#define SUNN "3" + +s pi,Alfa, Alfa2, Alfas, Alfas2, CA, CA2, CB, CB2, CBA, CBA2, CW, CW2, D, + EL, GS, MA0, MA02, MA0tree, MA0tree2, MB, MB2, MC, MC2, MD, MD2, ME, + ME2, MGl, MGl2, MH, Mh0, Mh02, Mh0tree, Mh0tree2, MH2, MHH, MHH2, + MHHtree, MHHtree2, MHp, MHp2, MHptree, MHptree2, Mino3, Mino3C, ML, + ML2, MM, MM2, MS, MS2, MT, MT2, MU, MU2, MW, MW2, MZ, MZ2, Pi, S, + S34, T, T14, T24, TB, TB2, U; +cf Den,Denom, dirM, Hel, List, MASf, MASf2, MCha, MCha2, Mf, Mf2, MHiggs, + MHiggs2, MHiggstree, MHiggstree2, MNeu, MNeu2, MSf, MSf2, pol, polc, + SUNF, SUND, SUNSum, SUNT, SpinorU, SpinorUb, SpinorV, SpinorVb; +S eps,[L_beta],[alpha_s/pi],[L_1],[L_2],[L_3],[L_4]; +S [L_beta_34], [L_beta_35], [L_beta_36], [L_beta_45], [L_beta_46], [L_beta_56]; +S gamma,[ln(4*Pi)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v5)],[ln(v4.v5)], [ln(v1.v5)],[ln(v1.v6)],[ln(v2.v5)],[ln(v2.v6)]; +S [ln((v1.n)^2/n^2)],[ln((v2.n)^2/n^2)],[ln((v5.n)^2/n^2)],[ln(-v1.v2/2)],[ln(v1.v5/2)],[ln(v2.v5/2)]; +S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)], [ln(2)]; +Auto S A; +d 4; + + + +AutoDeclare I Dir=4, iM, Lor=4,ind; + +#define LoopMomenta "q1,q2" + +#define Vectors "`LoopMomenta', + eta1,eta2,eta3,eta4,eta5, + e1,e2,e3,e4,e5, + ec1,ec2,ec3,ec4,ec5, + z1,z2,z3,z4,z5, + zc1,zc2,zc3,zc4,zc5, + k1,k2,k3,k4,k5" +v `Vectors'; + +v k; +s m; +f g,g1,g2,dummy; +v g6,g7; + +cf rat; + +V v1,v2,v3,v4,v5,v6,l,n; +cf Ngluon; + +S u; + +Tensor Tr(cyclic),Tp,f(antisymmetric),ff(rcyclic), d(symmetric); +Function TM,TT; +Symbols a,nf,NF,NA,cF,cA,[cF-cA/6]; +Dimension NA; +AutoDeclare I j=NA,Glu=NA; +AutoDeclare I n1=NA,m1=NA; +Dimension NF; +AutoDeclare I i=NF,Col=NF; +I iA=NF,iB=NF,iAb=NF,iBb=NF; + +*************************************************** +* ____ _ _ _ * +* / ___|___ | | ___ _ __ | |__ __ _ ___(_)___ * +*| | / _ \| |/ _ \| '__| | '_ \ / _` / __| / __|* +*| |__| (_) | | (_) | | | |_) | (_| \__ \ \__ \* +* \____\___/|_|\___/|_| |_.__/ \__,_|___/_|___/* +*************************************************** + +#define ColBasDim "6" +L proj1 = d_(Col1999,Col2999)*d_(Col3999,Col4999)*d_(Col5999,Col6999); +L proj2 = d_(Col1999,Col2999)*SUNT(Glu100,Col4999,Col3999)*SUNT(Glu100,Col6999,Col5999); +L proj3 = SUNT(Glu100,Col1999,Col2999)*d_(Col3999,Col4999)*SUNT(Glu100,Col6999,Col5999); +L proj4 = SUNT(Glu100,Col1999,Col2999)*SUNT(Glu100,Col4999,Col3999)*d_(Col5999,Col6999); +L proj5 = SUNT(Glu100,Col1999,Col2999)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*SUND(Glu100,Glu101,Glu102); +L proj6 = SUNT(Glu100,Col1999,Col2999)*SUNT(Glu101,Col4999,Col3999)*SUNT(Glu102,Col6999,Col5999)*i_*SUNF(Glu100,Glu101,Glu102); + +.sort +Skip; +#do i=1,`ColBasDim' + L proj`i'b = proj`i'; +#enddo +Multiply replace_(Col1999,Col1,Col2999,Col2,Col3999,Col3,Col4999,Col4,Col5999,Col5,Col6999,Col6,Glu100,Glu200,Glu101,Glu201,Glu102,Glu202); +id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +id i_ = -i_; +.sort +#call SUn +id a = 1/2; +id NA = NF^2-1; +.sort + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + G P`i'x`j' = + proj`i' * proj`j'b*d_(Col1999,Col1)*d_(Col2999,Col2)*d_(Col3999,Col3)*d_(Col4999,Col4)*d_(Col5999,Col5)*d_(Col6999,Col6); +#enddo +#enddo +L t = d_(Col1,Col2)*d_(Col3,Col4)*d_(Col5,Col6)*d_(Col1,Col2)*SUNT(Glu300,Col4,Col3)*SUNT(Glu300,Col6,Col5); + +#call SUn +id a = 1/2; +id NA = NF^2-1; +.sort +******************************************* +* !!!ONLY TRUE FOR THE DIAGONAL MATRIX!!! * +******************************************* +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + L invP`i'x`j' = Denom(P`i'x`j'); +#enddo +#enddo +id Denom(0) = 0; + +.sort +Print; +.sort +Skip; + +* +* partial amplitudes (kinematical parts) +* +*L A1x2 = (+v1(n1))/(-v1.l)*(-v2(m1))/(+v2.l)*Ngluon(n1,m1)/l.l; +*L A1x3 = (+v1(n1))/(+v1.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +*L A1x4 = (+v1(n1))/(+v1.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A1x5 = (+v1(n1))/(+v1.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A1x6 = (+v1(n1))/(+v1.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A2x3 = (-v2(n1))/(+v2.l)*(+v3(m1))/(-v3.l)*Ngluon(n1,m1)/l.l; +*L A2x4 = (-v2(n1))/(+v2.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A2x5 = (-v2(n1))/(+v2.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A2x6 = (-v2(n1))/(+v2.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A3x4 = (+v3(n1))/(+v3.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +*L A3x5 = (+v3(n1))/(+v3.l)*(+v5(m1))/(-v5.l)*Ngluon(n1,m1)/l.l; +*L A3x6 = (+v3(n1))/(+v3.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A4x5 = (-v4(n1))/(+v4.l)*(+v5(m1))/(v5.l)*Ngluon(n1,m1)/l.l; +*L A4x6 = (-v4(n1))/(+v4.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +*L A5x6 = (+v5(n1))/(+v5.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; + +L A1x2 = v1(n1)/(-v1.l)*(-v2(m1))/(v2.l)*Ngluon(n1,m1)/l.l; +L A1x3 = v1(n1)/(v1.l)*v3(m1)/(v3.l)*Ngluon(n1,m1)/l.l; +L A1x4 = v1(n1)/(v1.l)*(-v4(m1))/(v4.l)*Ngluon(n1,m1)/l.l; +L A1x5 = v1(n1)/(v1.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l; +L A1x6 = v1(n1)/(v1.l)*(-v6(m1))/(v6.l)*Ngluon(n1,m1)/l.l; +L A2x3 = (-v2(n1))/(-v2.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l; +L A2x4 = (-v2(n1))/(-v2.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L A2x5 = (-v2(n1))/(-v2.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l; +L A2x6 = (-v2(n1))/(-v2.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; +L A3x4 = v3(n1)/(-v3.l)*(-v4(m1))/(v4.l)*Ngluon(n1,m1)/l.l; +L A3x5 = v3(n1)/(-v3.l)*(v5(m1))/(v5.l)*Ngluon(n1,m1)/l.l; +L A3x6 = v3(n1)/(-v3.l)*(-v6(m1))/(v6.l)*Ngluon(n1,m1)/l.l; +L A4x5 = (-v4(n1))/(-v4.l)*(v5(m1))/(v5.l)*Ngluon(n1,m1)/l.l; +L A4x6 = (-v4(n1))/(-v4.l)*(-v6(m1))/(v6.l)*Ngluon(n1,m1)/l.l; +L A5x6 = (+v5(n1))/(+v5.l)*(-v6(m1))/(-v6.l)*Ngluon(n1,m1)/l.l; + + +L Self1 = v3(n1)/(v3.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l; +L Self2 = (-v4(n1))/(v4.l)*(-v4(m1))/(-v4.l)*Ngluon(n1,m1)/l.l; +L Self3 = v5(n1)/(v5.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l; +L Self4 = v6(n1)/(v6.l)*v6(m1)/(-v6.l)*Ngluon(n1,m1)/l.l; + + +L C1x2 = SUNT(Glu99,Col1999,Col1)*SUNT(Glu99,Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x3 = SUNT(Glu99,Col1999,Col1)*SUNT(Glu99,Col3,Col3999)*d_(Col2,Col2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x4 = SUNT(Glu99,Col1999,Col1)*SUNT(Glu99,Col4999,Col4)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C1x5 = SUNT(Glu99,Col1999,Col1)*SUNT(Glu99,Col5,Col5999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C1x6 = SUNT(Glu99,Col1999,Col1)*SUNT(Glu99,Col6999,Col6)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C2x3 = SUNT(Glu99,Col2,Col2999)*SUNT(Glu99,Col3,Col3999)*d_(Col1,Col1999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C2x4 = SUNT(Glu99,Col2,Col2999)*SUNT(Glu99,Col4999,Col4)*d_(Col1,Col1999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C2x5 = SUNT(Glu99,Col2,Col2999)*SUNT(Glu99,Col5,Col5999)*d_(Col1,Col1999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C2x6 = SUNT(Glu99,Col2,Col2999)*SUNT(Glu99,Col6999,Col6)*d_(Col1,Col1999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C3x4 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col4999,Col4)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col5,Col5999)*d_(Col6,Col6999)*1; +L C3x5 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col5,Col5999)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col4,Col4999)*d_(Col6,Col6999)*1; +L C3x6 = SUNT(Glu99,Col3,Col3999)*SUNT(Glu99,Col6999,Col6)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*1; +L C4x5 = SUNT(Glu99,Col4999,Col4)*SUNT(Glu99,Col5,Col5999)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col6,Col6999)*1; +L C4x6 = SUNT(Glu99,Col4999,Col4)*SUNT(Glu99,Col6999,Col6)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*1; +L C5x6 = SUNT(Glu99,Col5,Col5999)*SUNT(Glu99,Col6999,Col6)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*1; +L CSelf1 = SUNT(Glu99,Col203,Col3999)*SUNT(Glu99,Col3,Col203)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col4,Col4999)*d_(Col5,Col5999)*d_(Col6,Col6999); +L CSelf2 = SUNT(Glu99,Col204,Col4999)*SUNT(Glu99,Col4,Col204)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col5,Col5999)*d_(Col6,Col6999); +L CSelf3 = SUNT(Glu99,Col205,Col5999)*SUNT(Glu99,Col5,Col205)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col6,Col6999); +L CSelf4 = SUNT(Glu99,Col206,Col6999)*SUNT(Glu99,Col6,Col206)*d_(Col1,Col1999)*d_(Col2,Col2999)*d_(Col3,Col3999)*d_(Col4,Col4999)*d_(Col5,Col5999); + + +*id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1); +.sort + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' +L [S(alpha_s)_`i'x`j'] = proj`i' * proj`j'b * +( + +C1x2*A1x2 + +C1x3*A1x3 + +C1x4*A1x4 + +C1x5*A1x5 + +C1x6*A1x6 + +C2x3*A2x3 + +C2x4*A2x4 + +C2x5*A2x5 + +C2x6*A2x6 + +C3x4*A3x4 + +C3x5*A3x5 + +C3x6*A3x6 + +C4x5*A4x5 + +C4x6*A4x6 + +C5x6*A5x6 + +CSelf1*Self1/2 + +CSelf2*Self2/2 + +CSelf3*Self3/2 + +CSelf4*Self4/2 +); +#enddo +#enddo + +L test = Self1; +id Ngluon(n1?,m1?) = d_(n1,m1)-(l(n1)*n(m1)/n.l + n(n1)*l(m1)/n.l); +* +l(n1)*l(m1)/n.l^2*n.n; +.sort +* +* +* substituition of integrals; measure d^Dl/(2*Pi)^D; +* it als involves the prefactor (-i)*g^2 to obtain the powers of alpha_s +* +* the substitutions below assume: +* vA.vA=0, vB.vB=0, v1.v1=1, v2.v2=1 +* + +id v1.v2*l.l^-1*v1.l^-1*v2.l^-1 = + [alpha_s/pi] * + ( 2*eps^-2 - eps^-1*([ln(-v1.v2/2)] + gamma - [ln(4*Pi)]) ); + +id v1.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v1.v6*l.l^-1*v1.l^-1*v6.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v1.v6)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v5*l.l^-1*v2.l^-1*v5.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v2.v6*l.l^-1*v2.l^-1*v6.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*(2*[ln(v2.v6)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) ); + +id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_34]; + +id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_35]; + +id v3.v6*l.l^-1*v3.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_36]; + +id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_45]; + +id v4.v6*l.l^-1*v4.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_46]; + +id v5.v6*l.l^-1*v5.l^-1*v6.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta_56]; + + +id v1.n*l.l^-1*v1.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v1.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v2.n*l.l^-1*v2.l^-1*n.l^-1 = + [alpha_s/pi]/2 * + ( 2*eps^-2 - eps^-1*([ln((v2.n)^2/n^2)] + gamma - [ln(4*Pi)]) ); + +id v3.n*l.l^-1*v3.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_1]; + +id v4.n*l.l^-1*v4.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_2]; + +id v5.n*l.l^-1*v5.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_3]; + +id v6.n*l.l^-1*v6.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_4]; + + +id v3.v3*l.l^-1*v3.l^-2 = - [alpha_s/pi] * eps^-1; + +id v4.v4*l.l^-1*v4.l^-2 = - [alpha_s/pi] * eps^-1; + +id v5.v5*l.l^-1*v5.l^-2 = - [alpha_s/pi] * eps^-1; + +id v6.v6*l.l^-1*v6.l^-2 = - [alpha_s/pi] * eps^-1; + +id n.n*l.l^-1*n.l^-2 = - [alpha_s/pi] * eps^-1; +.sort; + +#do i=1,`ColBasDim' +#do j=1,`ColBasDim' + #$summ = 0; + #do k=1,`ColBasDim' + #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j']*(-eps); + #enddo + G [G^qqttg_`i'x`j'] = `$summ'; +#enddo +#enddo + + +#call SUn +id a = 1/2; +id NA = NF^2-1; +*id Denom(?k) = exp_(?k,-1); +.sort +Bracket Denom; +.sort +id NF^m? = dummy(NF^m); +repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1)); +*collect dummy; +.sort +PolyRatFun rat; +id dummy(?num)*Denom(?den)=rat(?num,?den); +.sort +PolyRatFun; +id rat(S?,T?) = S/T; +.sort +*B u; +*.sort +*L t = [Gamma(alpha_s)_1x1][u^10]; +id dummy(?k) = exp_(?k,1); + +id [ln((v1.n)^2/n^2)] = [ln(1/2)]; +id [ln((v2.n)^2/n^2)] = [ln(1/2)]; +id [ln(-v1.v2/2)] = [ln(-1/2)]; + +id [ln(1/2)] = -[ln(2)]; +id [ln(-1/2)] = i_*pi-[ln(2)]; + +.sort +Print; +*B [L_1],[L_2],[L_3],[L_4]; +AntiBracket NF; +.sort + +.store + +save Soft.sav; +.end diff --git a/simp.py b/simp.py @@ -0,0 +1,84 @@ +import sympy as sy +import re +import subprocess +def runFORM(expr): + expr = str(expr) + expr = re.sub('L_beta_',r"Lbeta",expr) + expr = re.sub('N_c',r"Nc",expr) + expr = re.sub('I',r"i_",expr) + code = '''#- +off stats; + +S Nc, pi, s, MT; +Auto S Lbeta; +Auto S nu, v; +CF log; + +L expr = {0}; + +.sort +AB Nc; +Print; +.end +'''.format(expr) + + form_file_name = '/tmp/FORM_Code.frm' + with open(form_file_name,'w') as f: + f.write(code) + + form_res = subprocess.run(["form","-f",form_file_name],capture_output=True,text=True).stdout + form_res=form_res.replace('\n','') + form_res=form_res.replace(' ','') + form_res=form_res.replace(';','') + form_res=form_res.replace('expr=','') + form_res=form_res.replace('Nc','N_c') + form_res=form_res.replace('Lbeta','L_beta') + form_res=form_res.replace('i_','I') + form_res=form_res.replace('MT',r"m_t") + return form_res +G6x6 ="""1/pi * ( 1/4*log(v24)*N_c^-2 - 1/4*log(v24) - 1/4* + log(v23)*N_c^-2 + 1/4*log(v23) - 1/4*log(v14)*N_c^-2 + 1/4 + *log(v14) + 1/4*log(v13)*N_c^-2 - 1/4*log(v13) )""" +var = list() +pi = sy.pi +a = sy.Symbol('alpha_s') +Nc = sy.Symbol('N_c') +var.append((G6x6 ,"G6x6 ")) +res = list() +for v in var: + #expr = sy.fraction(sy.sympify(v[0]).simplify()) + expr = (sy.sympify(v[0]).expand()*2*pi).simplify() + #expr = sy.fraction(2*sy.sympify(v[0]).collect(pi)) + expr = sy.sympify(runFORM(expr)).simplify() + expr = sy.fraction(expr) + num = expr[0] + for i in range(10): + num=sy.collect(num,Nc**2-i) + num=sy.collect(num,Nc-i) + num=sy.collect(num,Nc+i) + num=sy.collect(num,-Nc*(Nc-1)+2) + num=sy.collect(num,Nc*(Nc+1)-2) + if(len(num.args)==2): + pre = sy.latex(num.args[0]/expr[1]) + num = num.args[1] + elif(expr[1] != 1): + pre = sy.latex(1/expr[1]) + else: + pre = '' + g=re.sub('G(\d+)x(\d+)',r"\\Gamma^{(1)}_{\1,\2}",v[1]) + prefact = sy.latex(a/(2*pi)) + prefact = '' + if(pre!=''): + rhs = prefact+pre+'\\breaktowidth{0.9\\linewidth}{\\delimiterswithbreaks{[}{]}{' + else: + rhs = '\\breaktowidth{0.9\\linewidth}{' + #rhs += re.sub(r"\\left\((.*)\\right\)",r"\\delimiterswithbreaks{(}{)}{\1}",sy.latex(num)) + rhs += sy.latex(num) + if(pre!=''): + rhs += '}}' + else: + rhs += '}' + if num == 0: + rhs = 0 + + print("{0}=&{1}\\nonumber \\\\".format(g,rhs))