1 * $Id: ff.h,v 1.1 2016/09/23 18:39:38 jwebb Exp $
2 * -------------------------------------------------------------
3 * INCLUDE FILE FOR THE FF ROUTINES.
4 * Geert Jan van Oldenborgh.
5 * -------------------------------------------------------------
6 * please
do not change, and recompile _everything_ when you
do.
7 * -------------------------------------------------------------
9 *
this parameter determines how far the scalar npoint functions
10 * will look back to find the same parameters (when lmem is
true)
15 *
if .TRUE. then
default (ffinit)
16 * l4also: in C0 (and higher), also consider the algorithm with 16
18 * ldc3c4: in D0 (and higher), also consider possible cancellations
19 * between the C0s .TRUE.
20 * lmem: before computing the C0 and higher, first check whether
21 * it has already been done recently .FALSE.
22 * ldot: leave the dotproducts and some determinants in common
24 * onshel: (in ffz?0 only): use onshell momenta .TRUE.
26 * lnasty:
internal use
28 logical l4also,ldc3c4,lmem,ldot,onshel,lsmug,lnasty
30 * nwidth: number of widths within which the complex mass is used
31 * nschem: scheme to handle the complex mass (see ffinit.f)
32 * idot:
internal flags to signal that some of the dotproducts
33 * are input: 0: none; 1: external pi.pj, 2: external +
34 * kinematical determinant, 3: all dotproducts + kindet.
36 integer nwidth,nschem,idot
38 * xloss: factor that the
final result of a subtraction can be
39 * smaller than the terms without warning (
default 1/8)
40 * precx: precision of real numbers, determined at runtime by
41 * ffinit (IEEE: 4.e-16)
42 * precc: same
for complex numbers
43 * xalogm: smallest real number of which a log can be taken,
44 * determined at runtime by ffinit (IEEE: 2.e-308)
45 * xclogm: same
for complex.
53 * bf: factors in the expansion of dilog (~Bernouilli numbers)
57 * fpij2: vi.vj
for 2point
function 1-2: si, 3-3: pi
58 * fpij3: vi.vj
for 3point
function 1-3: si, 4-6: pi
59 * fpij4: vi.vj
for 4point
function 1-4: si, 5-10: pi
60 * fpij5: vi.vj
for 5point
function 1-5: si, 6-15: pi
61 * fpij6: vi.vj
for 6point
function 1-6: si, 7-21: pi
62 * fdel2: del2 = delta_(p1,p2)^(p1,p2) = p1^2.p2^2 - p1.p2^2 in C0
63 * fdel3: del3 = delta_(p1,p2,p3)^(p1,p2,p3) in D0
64 * fdel4s: del4s = delta_(s1,s2,s3,s4)^(s1,s2,s3,s4) in D0
65 * fdel4: del4 = delta_(p1,p2,p3,p4)^(p1,p2,p3,p4) in E0
66 * fdl3i: del3i = delta_(pj,pk,pl)^(pj,pk,pl) in E0, D0 without si
67 * fdl4si: dl4si = del4s in E0, D0 without si
68 * fdl3ij: same in F0 without si and sj.
69 * fd4sij: dl4si = del4s in E0, D0 without si
70 * fdl4i: delta4 in F0 without si.
71 * fodel2: same offshell (in
case of complex or z-functions)
78 * fidel3: ier of del3 (is not included in D0)
79 * fidel4: ier of del4 (is not included in E0)
80 * fidl3i: ier of dl3i (is not included in E0)
81 * fid3ij: ier of dl3ij (is not included in F0)
82 * fidl4i: ier of dl4i (is not included in F0)
84 DOUBLE PRECISION xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
85 + reqprc,pi,pi6,pi12,xlg2,bf(20),
86 + xninv(30),xn2inv(30),xinfac(30),
87 + fpij2(3,3),fpij3(6,6),fpij4(10,10),fpij5(15,15),
88 + fpij6(21,21),fdel2,fdel3,fdel4s,fdel4,fdl3i(5),
89 + fdl4si(5),fdl3ij(6,6),fd4sij(6,6),fdl4i(6),fodel2,
90 + fodel3,fodel4,fodl3i(5),fod3ij(6,6),fodl4i(6)
91 integer fidel3,fidel4,fidl3i(5),fid3ij(6,6),fidl4i(6)
93 * c[zero1]:0,1 complex
96 * cfp..: complex version of fp..., only defined in ff[cz]*
97 * cmipj: (internal only) mi^2 - pj^2 in C0
98 * c2sisj: (internal only) 2*si.sj in D0
99 * cfdl4s: del4s in complex case (D0)
100 * ca1: (internal only) complex A1
101 * csdl2p: (internal only) complex transformed sqrt(del2)
103 DOUBLE
COMPLEX czero,chalf,cone,c2ipi,cipi2,
104 + cfpij2(3,3),cfpij3(6,6),cfpij4(10,10),cfpij5(15,15),
105 + cfpij6(21,21),cmipj(3,3),c2sisj(4,4),cfdl4s,ca1
107 * nevent: number in integration loop (to be updated by user)
108 * ner: can be used to signal numerical problems (see ffrcvr)
109 *
id: identifier of scalar function (to be set by user)
110 * idsub: internal identifier to pinpoint errors
111 * inx: in D0: p(inx(i,j)) = isgn(i,j)*(s(i)-s(j))
112 * inx5: in E0: p(inx5(i,j)) = isgn5(i,j)*(s(i)-s(j))
113 * inx6: in F0: p(inx6(i,j)) = isgn6(i,j)*(s(i)-s(j))
117 * iold: rotation matrix for 4point function
118 * isgrot: signs to iold
119 * isgn34: +1 or -1: which root to choose in the transformation (D0)
120 * isgnal: +1 or -1: which root to choose in the alpha-trick (C0)
121 * irota3: save the number of positions the C0 configuration has been
123 * irota4: same for the D0
124 * irota5: same for the E0
125 * irota6: same for the F0
127 integer nevent,ner,
id,idsub,inx(4,4),isgn(4,4),inx5(5,5),
128 + isgn5(5,5),inx6(6,6),isgn6(6,6),isgn34,isgnal,iold(13,
129 + 12),isgrot(10,12),irota3,irota4,irota5,irota6
135 + czero = (0.D0,0.D0),
136 + chalf = (.5D0,0.D0),
137 + cone = (1.D0,0.D0),
138 + c2ipi = (0.D+0,6.28318530717958647692528676655896D+0),
139 + cipi2 = (0.D+0,9.869604401089358618834490999876D+0),
140 + pi = 3.14159265358979323846264338327948D+0,
141 + pi6 = 1.644934066848226436472415166646D+0,
142 + pi12 = .822467033424113218236207583323D+0,
143 + xlg2 = .6931471805599453094172321214581D+0)
147 common /ffsign/isgn34,isgnal
148 common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
150 common /ffflag/ l4also,ldc3c4,lmem,ldot,
151 + nevent,ner,
id,idsub,nwidth,nschem,onshel,idot
152 common /ffcnst/ bf,xninv,xn2inv,xinfac,inx,isgn,iold,isgrot,
153 + inx5,isgn5,inx6,isgn6
154 common /ffrota/ irota3,irota4,irota5,irota6
155 common /ffdot/ fpij2,fpij3,fpij4,fpij5,fpij6
156 common /ffdel/ fdel2,fdel3,fdel4s,fdel4,fdl3i,fdl4si,fdl3ij,
158 common /ffidel/ fidel3,fidel4,fidl3i,fid3ij,fidl4i
159 common /ffcdot/ cfpij2,cfpij3,cfpij4,cfpij5,cfpij6
160 common /ffcdel/ fodel2,fodel3,cfdl4s,fodel4,fodl3i,fod3ij,fodl4i
161 common /ffsmug/ lsmug,lnasty,idum93,cmipj,c2sisj,ca1
163 * regularization parameters
165 DOUBLE PRECISION mudim2,divergence,lambda2
169 common /ffregul/ mudim2,divergence,lambda2