flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
ff.h
Go to the documentation of this file.
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 RealType acc, eps
134 ComplexType cIeps
135*
137*
138 parameter(
139 & cI = (0D0, 1D0),
140 & czero = (0D0,0D0),
141 & chalf = (.5D0,0D0),
142 & cone = (1D0,0D0),
143 & c2ipi = (0D0,6.28318530717958647692528676655896D0),
144 & cipi2 = (0D0,9.869604401089358618834490999876D0),
145 & pi = 3.14159265358979323846264338327948D0,
146 & pi6 = 1.644934066848226436472415166646D0,
147 & pi12 = .822467033424113218236207583323D0,
148 & xlg2 = .6931471805599453094172321214581D0,
149 & sqrt2 = 1.4142135623730950488016887242096981D0,
150 & acc = 1D-13,
151 & eps = 1D-22,
152 & cIeps = (0D0,1D-50) )
153*
154* common
155*
156 common /ffsign/isgn34,isgnal
157 common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
158 & reqprc
159 common /ffflag/ l4also,ldc3c4,lmem,ldot,
160 & nevent,ner,id,idsub,nwidth,nschem,onshel,idot
161 common /ffcnst/ bf,xninv,xn2inv,xinfac,inx,isgn,iold,isgrot,
162 & inx5,isgn5,inx6,isgn6
163 common /ffrota/ irota3,irota4,irota5,irota6
164 common /ffdot/ fpij2,fpij3,fpij4,fpij5,fpij6
165 common /ffdel/ fdel2,fdel3,fdel4s,fdel4,fdl3i,fdl4si,fdl3ij,
166 & fd4sij,fdl4i
167 common /ffidel/ fidel3,fidel4,fidl3i,fid3ij,fidl4i
168 common /ffcdot/ cfpij2,cfpij3,cfpij4,cfpij5,cfpij6
169 common /ffcdel/ fodel2,fodel3,cfdl4s,fodel4,fodl3i,fod3ij,fodl4i
170 common /ffsmug/ lsmug,lnasty,idum93,cmipj,c2sisj,ca1
171*
172* regularization parameters
173*
174 ComplexType mudimc
175 RealType delta,lambda,minmass
176 common /ltregul/ mudimc,delta,lambda,minmass
177
178 RealType mudim
179 equivalence (mudimc, mudim)
180*
181* nan is used for undefined values and is supposed to
182* "poison" a result, much as the IEEE NaN, which is just
183* too unportable in Fortran
184*
186 parameter (nan = (1D123, 1D123))
#define ffrota
Definition: externals.h:191
#define ffcnst
Definition: externals.h:133
#define ffcdel
Definition: externals.h:121
#define ffprec
Definition: externals.h:184
#define ffidel
Definition: externals.h:179
#define ffcdot
Definition: externals.h:122
#define ffsign
Definition: externals.h:197
#define ffdot
Definition: externals.h:172
#define ffsmug
Definition: externals.h:199
#define ffdel
Definition: externals.h:158
#define ffflag
Definition: externals.h:176
idot ** xloss
Definition: ff.h:40
* $Id
Definition: ff.h:1
nschem
Definition: ff.h:36
v and recompile _everything_ when you do ***this parameter determines how far the scalar npoint functions *will look back to find the same parameters(when lmem is true) *integer memory parameter(memory
without even the implied warranty of !MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU !General Public License for more details !You should have received a copy of the GNU General Public License !along with FlexibleSUSY If not
Target to(const Source &arg)
Converts an object of type Source to an object of type Target.
Definition: slhaea.h:50
void() D(dd)) coeff_t &arr
double C0(double m1, double m2, double m3) noexcept
(arguments are interpreted as unsquared)
double D0(double m1, double m2, double m3, double m4) noexcept
(arguments are interpreted as unsquared)
T Exp(T z) noexcept
Definition: wrappers.hpp:187
constexpr double pi
Definition: mathdefs.hpp:16
Complex< T > log(const Complex< T > &z) noexcept
Definition: complex.hpp:54
generate run handle
#define ComplexType
Definition: types.h:11
#define RealType
Definition: types.h:10