StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ff.h
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 * -------------------------------------------------------------
8 *
9 * this parameter determines how far the scalar npoint functions
10 * will look back to find the same parameters (when lmem is true)
11 *
12  integer memory
13  parameter(memory=12)
14 *
15 * if .TRUE. then default (ffinit)
16 * l4also: in C0 (and higher), also consider the algorithm with 16
17 * dilogs .TRUE.
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
23 * .FALSE.
24 * onshel: (in ffz?0 only): use onshell momenta .TRUE.
25 * lsmug: internal use
26 * lnasty: internal use
27 *
28  logical l4also,ldc3c4,lmem,ldot,onshel,lsmug,lnasty
29 *
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.
35 *
36  integer nwidth,nschem,idot
37 *
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.
46 * xalog2: xalogm**2
47 * xclog2: xclogm**2
48 * reqprc: not used
49 * pi: pi
50 * pi6: pi**2/6
51 * pi12: pi**2/12
52 * xlg2: log(2)
53 * bf: factors in the expansion of dilog (~Bernouilli numbers)
54 * xninv: 1/n
55 * xn2inv: 1/n**2
56 * xinfac: 1/n!
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)
72 * fodel3: -''-
73 * cfdl4s: -''-
74 * fodel4: -''-
75 * fodl3i: -''-
76 * fod3ij: -''-
77 * fodl4i: -''-
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)
83 *
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)
92 *
93 * c[zero1]:0,1 complex
94 * c2ipi: 2*i*pi
95 * cipi2: i*pi**2
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)
102 *
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
106 *
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))
114 * isgn: see inx
115 * isgn5: see inx5
116 * isgn6: see inx6
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
122 * rotated over
123 * irota4: same for the D0
124 * irota5: same for the E0
125 * irota6: same for the F0
126 *
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
130  integer idum93(2)
131 *
132 * parameters
133 *
134  parameter(
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)
144 *
145 * common
146 *
147  common /ffsign/isgn34,isgnal
148  common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
149  + reqprc
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,
157  + fd4sij,fdl4i
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
162 *
163 * regularization parameters
164 *
165  DOUBLE PRECISION mudim2,divergence,lambda2
166 *
167 * common
168 *
169  common /ffregul/ mudim2,divergence,lambda2
170