commit 05cf12fd7ba2cd1ef9e969569d28920011ac003e
parent c9a606255c5f2f8f501b82ef536c8c40b27b8da4
Author: Bakar Chargeishvili <bakar@bcharge.de>
Date:   Tue, 29 Mar 2022 17:12:19 +0200
Import the project
Diffstat:
| M | README.md |  |  | 9 | +++++++-- | 
| A | SUn.prc |  |  | 79 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
| A | Soft.ggttg.frm |  |  | 365 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
| A | Soft.uuttg.frm |  |  | 270 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
4 files changed, 721 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
@@ -1,4 +1,9 @@
-# FORMSoft
+# FORMSoft -- Automated calculation of 1-Loop soft anomalous dimension matrices
 
-An automated tool for 1-loop soft anomalous dimension calculation
+FORM tool to calculate soft anomalous dimension matrices automatically.
 
+The color basis has to be hardcoded. To produce the kinematic and color factors
+another automated tool [WilsonWebs](https://git.bcharge.de/WilsonWebs/) can be
+used.
+
+For more information see the comments in the source code.
diff --git a/SUn.prc b/SUn.prc
@@ -0,0 +1,79 @@
+#procedure SUn
+*
+*	Procedure to compute color traces for the SU(NF) groups
+*	We follow the article by Cvitanovic (Phys.Rev.D14(1976)1536)
+*
+*	We use [T(i),T(j)] = i_*f(i,j,k)*T(k)    (f is the C of Cvitanovic)
+*
+*	We use the indices i in the space of the fundamental representation
+*	The indices j are in the space of the adjoint.
+*	The dimension should be the dimension of the fundamental representation.
+*
+*	We need: (C)Function Tr(cyclic). Indicates the traces.
+*	CFunction T, Tp, f(antisymmetric);
+*	Symbols a,nf,NF,NA;
+*	Indices i1=NF,i2=NF,i3=NF,i4=NF;
+*	Indices j1=NA,j2=NA,j3=NA;
+*	Dimension NF;
+*
+*	Usually the value of a is taken to be 1/2;
+*	nf is the number of flavors in the fundamental representation.
+*	NF is the dimension of the fundamental representation.
+*	NA is the dimension of the adjoint representation.
+*
+*	Routine by J.Vermaseren, 7-jan-1997
+*
+repeat;
+	id,once,Tr(?a) = SUNT(?a,i1,i1)*nf;
+	sum i1;
+	repeat;
+		id,once,SUNT(j1?,j2?,?a,i1?,i2?) = SUNT(j1,i1,i3)*SUNT(j2,?a,i3,i2);
+		sum i3;
+	endrepeat;
+endrepeat;
+#do i = 1,1
+if ( count(SUNF,1) || match(SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?)) )
+		redefine i "0";
+id,once,SUNF(j1?,j2?,j3?) = 1/a/i_*SUNT(j1,i1,i2)*SUNT(j2,i2,i3)*SUNT(j3,i3,i1)
+			-1/a/i_*SUNT(j3,i1,i2)*SUNT(j2,i2,i3)*SUNT(j1,i3,i1);
+sum i1,i2,i3;
+id	SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?) = Tp(i1,i2,i3,i4);
+#do j = 1,1
+if ( count(Tp,1) ) redefine j "0";
+.sort
+id,once,Tp(i1?,i2?,i3?,i4?) =
+			a*(d_(i1,i4)*d_(i2,i3)-d_(i1,i2)*d_(i3,i4)/NF);
+*renumber;
+#enddo
+#enddo
+#do i = 1,1
+if ( count(SUND,1) || match(SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?)) )
+		redefine i "0";
+id,once,SUND(j1?,j2?,j3?) = 1/a*SUNT(j1,i1,i2)*SUNT(j2,i2,i3)*SUNT(j3,i3,i1)
+			+1/a*SUNT(j3,i1,i2)*SUNT(j2,i2,i3)*SUNT(j1,i3,i1);
+sum i1,i2,i3;
+id	SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?) = Tp(i1,i2,i3,i4);
+#do j = 1,1
+if ( count(Tp,1) ) redefine j "0";
+.sort
+id,once,Tp(i1?,i2?,i3?,i4?) =
+			a*(d_(i1,i4)*d_(i2,i3)-d_(i1,i2)*d_(i3,i4)/NF);
+*renumber;
+#enddo
+#enddo
+
+repeat;
+	id	SUNT(j1?,?a,i1?,i2?)*SUNT(j2?,?b,i2?,i3?) = SUNT(j1,?a,j2,?b,i1,i3);
+endrepeat;
+id	SUNT(?a,i1?,i1?) = Tr(?a)/nf;
+id	Tr(j1?) = 0;
+id	Tr(j1?,j2?) = a*d_(j1,j2)*nf;
+.sort
+id	cF = a*(NF^2-1)/NF;
+id	cA = 2*a*NF;
+id	[cF-cA/6] = a*(2*NF/3-1/NF);
+.sort
+*
+#endprocedure
+
+*// vim: set filetype=form:
diff --git a/Soft.ggttg.frm b/Soft.ggttg.frm
@@ -0,0 +1,365 @@
+#-
+#:SmallSize 5000000
+#:LargeSize 20000000
+#:WorkSpace 50000000
+#:MaxTermSize 300000
+#:TermsInSmall 30000
+*#:ContinuationLines 100000
+on 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 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((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)];
+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 "11"
+G proj1  = d_(Glu1,Glu2)*SUNT(Glu5,Col3,Col4);
+G proj2  = i_*SUNF(Glu1,Glu2,Glu5)*d_(Col3,Col4);
+G proj3  = SUND(Glu1,Glu2,Glu5)*d_(Col3,Col4);
+G proj4  = i_*SUNF(Glu1,Glu2,Glu100)*i_*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj5  = i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj6  = i_*SUNF(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj7  = SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj8  = (1/2*(d_(Glu1,Glu101)*d_(Glu2,Glu5)-d_(Glu1,Glu5)*d_(Glu101,Glu2))
+			-SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)*Denom(NF))*SUNT(Glu101,Col3,Col4);
+G proj9  = 1/2*(SUND(Glu1,Glu101,Glu100)*i_*SUNF(Glu2,Glu100,Glu5)
+			-SUND(Glu2,Glu100,Glu5)*i_*SUNF(Glu1,Glu101,Glu100))*SUNT(Glu101,Col3,Col4);
+G proj10 = -(NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*Denom(4*(NF+2))
+			+1/2*SUNF(Glu1,Glu5,Glu100)*SUNF(Glu101,Glu2,Glu100)
+			-1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)
+			+1/4*d_(Glu1,Glu5)*d_(Glu2,Glu101)+1/4*d_(Glu1,Glu101)*d_(Glu2,Glu5)
+			+d_(Glu1,Glu2)*d_(Glu101,Glu5)*Denom(2*(NF+1)))*SUNT(Glu101,Col3,Col4);
+G proj11 = (-NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*Denom(4*(NF-2))
+			-1/2*SUNF(Glu1,Glu5,Glu100)*SUNF(Glu101,Glu2,Glu100)
+			+1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)
+			+1/4*d_(Glu1,Glu5)*d_(Glu2,Glu101)+1/4*d_(Glu1,Glu101)*d_(Glu2,Glu5)
+			-d_(Glu1,Glu2)*d_(Glu101,Glu5)*Denom(2*(NF-1)))*SUNT(Glu101,Col3,Col4);
+
+
+.sort
+Skip;
+#do i=1,`ColBasDim'
+	L proj`i'b = proj`i';
+#enddo
+Multiply replace_(Glu1,Glu991,Glu2,Glu992,Col3,Col993,Col4,Col994,Glu5,Glu995,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_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994)*d_(Glu5,Glu995);
+#enddo
+#enddo
+
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+*id Denom(?k)=exp_(?k,-1);
+
+.sort
+#do i=1,`ColBasDim'
+	Hide proj`i', proj`i'b;
+#enddo
+Bracket Denom;
+.sort
+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
+
+.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
+
+*
+* 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   A15 = v1(n1)/(v1.l)*v5(m1)/(-v5.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   A25 = v2(n1)/(v2.l)*v2(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L   A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+*L   A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L   A45 = v4(n1)/(v4.l)*v5(m1)/(-v5.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)/(v2.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+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   A15 = v1(n1)/(v1.l)*v5(m1)/(v5.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   A25 = -v2(n1)/(v2.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L   A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+L   A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L   A45 = -v4(n1)/(v4.l)*v5(m1)/(-v5.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;
+
+*
+* Color factors
+*
+L C12 = (-i_)*SUNF(Glu99,Glu1,Glu991)*(-i_)*SUNF(Glu99,Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C13 = (-i_)*SUNF(Glu99,Glu1,Glu991)*SUNT(Glu99,Col3,Col993)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C14 = (-i_)*SUNF(Glu99,Glu991,Glu1)*SUNT(Glu99,Col994,Col4)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);
+L C15 = (-i_)*SUNF(Glu99,Glu1,Glu991)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994);
+L C23 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col3,Col993)*d_(Glu1,Glu991)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C24 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col994,Col4)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Glu5,Glu995);
+L C25 = (-i_)*SUNF(Glu99,Glu2,Glu992)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Col4,Col994);
+L C34 = SUNT(Glu99,Col3,Col993)*SUNT(Glu99,Col994,Col4)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Glu5,Glu995);
+L C35 = SUNT(Glu99,Col3,Col993)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994);
+L C45 = SUNT(Glu99,Col994,Col4)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993);
+L CSelf1 = SUNT(Glu99,Col3,Col203)*SUNT(Glu99,Col203,Col993)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L CSelf2 = SUNT(Glu99,Col4,Col204)*SUNT(Glu99,Col204,Col994)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);
+
+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*
+*C23;
+*(  (CAB*SAB + C12*S12 +  CA1*SA1 + CA2*SA2
+*                 + CB1*SB1 + CB2*SB2 + CSelf1*Self1/2 + CSelf2*Self2/2) );
+(C12*A12+C13*A13+C14*A14+C15*A15+C23*A23+C24*A24+C25*A25+C34*A34+C35*A35+C45*A45+CSelf1*Self1/2+CSelf2*Self2/2);
+#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.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi] *
+		( 2*eps^-2 - eps^-1*([ln(v1.v5/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 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*eps^-2 - eps^-1*([ln(v2.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta];
+
+id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 =  + [alpha_s/pi]/2 *
+		( 2*eps^-2 - eps^-1*(2*[ln(v3.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 =  + [alpha_s/pi]/2 *
+		( 2*eps^-2 - eps^-1*(2*[ln(v4.v5)]+[ln(s/(2*MT^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] * 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]/2 *
+		( 2*eps^-2 - eps^-1*([ln((v5.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);
+id Denom(?a)*Denom(?b)  = Denom(exp_(?a,1)*exp_(?b,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);
+
+.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(-v1.v2/2)] = [ln(-1/2)];
+
+*Bracket [alpha_s/pi];
+Bracket [alpha_s/pi],[L_1],[L_2];
+Print;
+.end
+
+
+
+*.sort
+*Drop;
+*
+*#do i=1,`ColBasDim'
+*#do j=1,`ColBasDim'
+*	#$summ = 0;
+*	#do k=1,`ColBasDim'
+*		#if (`i'!=`k');
+*		#else
+*		#$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j'];
+*		#endif
+*	#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
+*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
+*Print;
+*.end
diff --git a/Soft.uuttg.frm b/Soft.uuttg.frm
@@ -0,0 +1,270 @@
+#-
+#:SmallSize 5000000
+#:LargeSize 20000000
+#:WorkSpace 50000000
+#:MaxTermSize 300000
+#:TermsInSmall 30000
+*#:ContinuationLines 100000
+on 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 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((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)];
+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 "4"
+L proj1 = d_(Col1,Col2)*SUNT(Glu5,Col3,Col4);
+L proj2 = d_(Col3,Col4)*SUNT(Glu5,Col2,Col1);
+L proj3 = i_*SUNT(Glu100,Col2,Col1)*SUNT(Glu101,Col3,Col4)*SUNF(Glu100,Glu101,Glu5);
+L proj4 = SUNT(Glu100,Col2,Col1)*SUNT(Glu101,Col3,Col4)*SUND(Glu100,Glu101,Glu5);
+
+.sort
+Skip;
+#do i=1,`ColBasDim'
+	L proj`i'b = proj`i';
+#enddo
+Multiply replace_(Col1,Col101,Col2,Col102,Col3,Col103,Col4,Col104,Glu5,Glu105,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_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104)*d_(Glu5,Glu105);
+#enddo
+#enddo
+
+#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   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   A15 = v1(n1)/(v1.l)*v5(m1)/(v5.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   A25 = -v2(n1)/(v2.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L   A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+L   A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L   A45 = -v4(n1)/(v4.l)*v5(m1)/(-v5.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;
+
+*
+* Color factors
+*
+L C12 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C13 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col3,Col103)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C14 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col104,Col4)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);
+L C15 = SUNT(Glu99,Col101,Col1)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104);
+L C23 = SUNT(Glu99,Col2,Col102)*SUNT(Glu99,Col3,Col103)*d_(Col1,Col101)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C24 = SUNT(Glu99,Col2,Col102)*SUNT(Glu99,Col104,Col4)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Glu5,Glu105);
+L C25 = SUNT(Glu99,Col2,Col102)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Col4,Col104);
+L C34 = SUNT(Glu99,Col3,Col103)*SUNT(Glu99,Col104,Col4)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Glu5,Glu105);
+L C35 = SUNT(Glu99,Col3,Col103)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104);
+L C45 = SUNT(Glu99,Col104,Col4)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103);
+L CSelf1 = SUNT(Glu99,Col3,Col203)*SUNT(Glu99,Col203,Col103)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L CSelf2 = SUNT(Glu99,Col4,Col204)*SUNT(Glu99,Col204,Col104)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);
+
+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 *
+*C14;
+*(C15*A15+C25*A25);
+*(C35*A35+C45*A45);
+*(C15*A15+C25*A25+C35*A35+C45*A45);
+*(CSelf1*Self1/2+CSelf2*Self2/2);
+*(C15*A15+C25*A25+C35*A35+C45*A45);
+(C12*A12+C13*A13+C14*A14+C15*A15+C23*A23+C24*A24+C25*A25+C34*A34+C35*A35+C45*A45+CSelf1*Self1/2+CSelf2*Self2/2);
+#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.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi] *
+		( 2*eps^-2 - eps^-1*([ln(v1.v5/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 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*eps^-2 - eps^-1*([ln(v2.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta];
+
+id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 =  + [alpha_s/pi]/2 *
+		( 2*eps^-2 - eps^-1*(2*[ln(v3.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 =  + [alpha_s/pi]/2 *
+		( 2*eps^-2 - eps^-1*(2*[ln(v4.v5)]+[ln(s/(2*MT^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] * 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]/2 *
+		( 2*eps^-2 - eps^-1*([ln((v5.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(-v1.v2/2)] = [ln(-1/2)];
+
+Bracket [alpha_s/pi];
+Print;
+.end