herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Looptools
include
ff.h
1
* $Id: ff.h,
v
1.1 1995/12/12 10:03:48 gj 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
RealType xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
85
& reqprc,
pi
,pi6,pi12,xlg2,sqrt2,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
* cI: imaginary unit
94
* c[zero1]:0,1 complex
95
* c2ipi: 2*i*pi
96
* cipi2: i*pi**2
97
* cfp..: complex version of fp..., only defined in ff[cz]*
98
* cmipj: (internal only) mi^2 - pj^2 in C0
99
* c2sisj: (internal only) 2*si.sj in D0
100
* cfdl4s: del4s in complex case (D0)
101
* ca1: (internal only) complex A1
102
* csdl2p: (internal only) complex transformed sqrt(del2)
103
*
104
ComplexType cI,czero,chalf,cone,c2ipi,cipi2,
105
& cfpij2(3,3),cfpij3(6,6),cfpij4(10,10),cfpij5(15,15),
106
& cfpij6(21,21),cmipj(3,3),c2sisj(4,4),cfdl4s,ca1
107
*
108
* nevent: number in integration loop (to be updated by user)
109
* ner: can be used to signal numerical problems (see ffrcvr)
110
*
id
: identifier of scalar function (to be set by user)
111
* idsub: internal identifier to pinpoint errors
112
* inx: in D0: p(inx(i,j)) = isgn(i,j)*(s(i)-s(j))
113
* inx5: in E0: p(inx5(i,j)) = isgn5(i,j)*(s(i)-s(j))
114
* inx6: in F0: p(inx6(i,j)) = isgn6(i,j)*(s(i)-s(j))
115
* isgn: see inx
116
* isgn5: see inx5
117
* isgn6: see inx6
118
* iold: rotation matrix for 4point function
119
* isgrot: signs to iold
120
* isgn34: +1 or -1: which root to choose in the transformation (D0)
121
* isgnal: +1 or -1: which root to choose in the alpha-trick (C0)
122
* irota3: save the number of positions the C0 configuration has been
123
* rotated over
124
* irota4: same for the D0
125
* irota5: same for the E0
126
* irota6: same for the F0
127
*
128
integer nevent,ner,
id
,idsub,inx(4,4),isgn(4,4),inx5(5,5),
129
& isgn5(5,5),inx6(6,6),isgn6(6,6),isgn34,isgnal,iold(13,
130
& 12),isgrot(10,12),irota3,irota4,irota5,irota6
131
integer idum93(2)
132
*
133
ComplexType cIeps
134
*
135
* parameters
136
*
137
parameter(
138
& cI = (0D0, 1D0),
139
& czero = (0D0,0D0),
140
& chalf = (.5D0,0D0),
141
& cone = (1D0,0D0),
142
& c2ipi = (0D0,6.28318530717958647692528676655896D0),
143
& cipi2 = (0D0,9.869604401089358618834490999876D0),
144
& pi = 3.14159265358979323846264338327948D0,
145
& pi6 = 1.644934066848226436472415166646D0,
146
& pi12 = .822467033424113218236207583323D0,
147
& xlg2 = .6931471805599453094172321214581D0,
148
& sqrt2 = 1.4142135623730950488016887242096981D0,
149
& cIeps = (0D0,1D-50) )
150
*
151
* common
152
*
153
common /ffsign/isgn34,isgnal
154
common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
155
& reqprc
156
common /ffflag/ l4also,ldc3c4,lmem,ldot,
157
& nevent,ner,
id
,idsub,nwidth,nschem,onshel,idot
158
common /ffcnst/ bf,xninv,xn2inv,xinfac,inx,isgn,iold,isgrot,
159
& inx5,isgn5,inx6,isgn6
160
common /ffrota/ irota3,irota4,irota5,irota6
161
common /ffdot/ fpij2,fpij3,fpij4,fpij5,fpij6
162
common /ffdel/ fdel2,fdel3,fdel4s,fdel4,fdl3i,fdl4si,fdl3ij,
163
& fd4sij,fdl4i
164
common /ffidel/ fidel3,fidel4,fidl3i,fid3ij,fidl4i
165
common /ffcdot/ cfpij2,cfpij3,cfpij4,cfpij5,cfpij6
166
common /ffcdel/ fodel2,fodel3,cfdl4s,fodel4,fodl3i,fod3ij,fodl4i
167
common /ffsmug/ lsmug,lnasty,idum93,cmipj,c2sisj,ca1
168
*
169
* regularization parameters
170
*
171
ComplexType mudimc
172
RealType delta, uvdiv, lambda, minmass
173
RealType diffeps, zeroeps
174
common /ltregul/ mudimc, delta, uvdiv, lambda, minmass,
175
& diffeps, zeroeps
176
177
RealType mudim
178
equivalence (mudimc, mudim)
179
*
180
* nan is used for undefined values and is supposed to
181
* "poison" a result, much as the IEEE NaN, which is just
182
* too unportable in Fortran
183
*
184
ComplexType nan
185
parameter (nan = (1D123, 1D123))
ThePEG::Constants::pi
constexpr double pi
ThePEG::Group::before
before
SpinorType::v
@ v
ThePEG::ParticleID::D0
D0
find
Iterator find(IteratorRange< Iterator > r, const T &t)
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6