Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:23:36

0001 *   $Id: ff.h,v 1.1 1995/12/12 10:03:48 gj Exp $
0002 *   -------------------------------------------------------------
0003 *   INCLUDE FILE FOR THE FF ROUTINES.  
0004 *                   Geert Jan van Oldenborgh.
0005 *   -------------------------------------------------------------
0006 *       please do not change, and recompile _everything_ when you do.
0007 *   -------------------------------------------------------------
0008 *
0009 *   this parameter determines how far the scalar npoint functions
0010 *   will look back to find the same parameters (when lmem is true)
0011 *
0012     integer memory
0013     parameter(memory=12)
0014 *
0015 *           if .TRUE. then                        default (ffinit)
0016 *   lwrite: give debug output                     .FALSE.
0017 *   ltest:  test consistency internally (slow)    .TRUE.
0018 *   l4also: in C0 (and higher), also consider the algorithm with 16
0019 *           dilogs                                .TRUE.
0020 *   ldc3c4: in D0 (and higher), also consider possible cancellations
0021 *           between the C0's                      .TRUE.
0022 *   lmem:   before computing the C0 and higher, first check whether
0023 *           it has already been done recently     .FALSE.
0024 *   lwarn:  give warning messages (concerning numerical stability)
0025 *                                                 .TRUE.
0026 *   ldot:   leave the dotproducts and some determinants in common
0027 *                                                 .FALSE.
0028 *   onshel: (in ffz?0 only): use onshell momenta  .TRUE.
0029 *   lsmug:  internal use
0030 *   lnasty: internal use
0031 *
0032     logical lwrite,ltest,l4also,ldc3c4,lmem,lwarn,ldot,onshel,lsmug,
0033      +      lnasty
0034 *
0035 *   nwidth: number of widths within which the complex mass is used
0036 *   nschem: scheme to handle the complex mass (see ffinit.f)
0037 *   idot:   internal flags to signal that some of the dotproducts 
0038 *       are input: 0: none; 1: external pi.pj, 2: external + 
0039 *       kinematical determinant, 3: all dotproducts + kindet.
0040 *
0041     integer nwidth,nschem,idot
0042 *
0043 *   xloss:  factor that the final result of a subtraction can be
0044 *           smaller than the terms without warning (default 1/8)
0045 *   precx:  precision of real numbers, determined at runtime by
0046 *           ffinit (IEEE: 4.e-16)
0047 *   precc:  same for complex numbers
0048 *   xalogm: smallest real number of which a log can be taken,
0049 *           determined at runtime by ffinit (IEEE: 2.e-308)
0050 *   xclogm: same for complex.
0051 *   xalog2: xalogm**2
0052 *   xclog2: xclogm**2
0053 *   reqprc: not used
0054 *   x[0124]:0,1,2,4
0055 *   x05:    1/2
0056 *   pi: pi
0057 *   pi6:    pi**2/6
0058 *   pi12:   pi**2/12
0059 *   xlg2:   log(2)
0060 *   bf: factors in the expansion of dilog (~Bernouilli numbers)
0061 *   xninv:  1/n
0062 *   xn2inv: 1/n**2
0063 *   xinfac: 1/n!
0064 *   fpij2:  vi.vj for 2point function 1-2: si, 3-3:  pi
0065 *   fpij3:  vi.vj for 3point function 1-3: si, 4-6:  pi
0066 *   fpij4:  vi.vj for 4point function 1-4: si, 5-10: pi
0067 *   fpij5:  vi.vj for 5point function 1-5: si, 6-15: pi
0068 *   fpij6:  vi.vj for 6point function 1-6: si, 7-21: pi
0069 *   fdel2:  del2 = delta_(p1,p2)^(p1,p2) = p1^2.p2^2 - p1.p2^2 in C0
0070 *   fdel3:  del3 = delta_(p1,p2,p3)^(p1,p2,p3) in D0
0071 *   fdel4s: del4s = delta_(s1,s2,s3,s4)^(s1,s2,s3,s4) in D0
0072 *   fdel4:  del4 = delta_(p1,p2,p3,p4)^(p1,p2,p3,p4) in E0
0073 *   fdl3i:  del3i = delta_(pj,pk,pl)^(pj,pk,pl) in E0, D0 without si
0074 *   fdl4si: dl4si = del4s in E0, D0 without si
0075 *   fdl3ij: same in F0 without si and sj.
0076 *   fd4sij: dl4si = del4s in E0, D0 without si
0077 *   fdl4i:  delta4 in F0 without si.
0078 *   fodel2: same offshell (in case of complex or z-functions)
0079 *   fodel3: -"-
0080 *   cfdl4s: -"-
0081 *   fodel4: -"-
0082 *   fodl3i: -"-
0083 *   fod3ij: -"-
0084 *   fodl4i: -"-
0085 *   fidel3: ier of del3 (is not included in D0)
0086 *   fidel4: ier of del4 (is not included in E0)
0087 *   fidl3i: ier of dl3i (is not included in E0)
0088 *   fid3ij: ier of dl3ij (is not included in F0)
0089 *   fidl4i: ier of dl4i (is not included in F0)
0090 *
0091     DOUBLE PRECISION xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
0092      +      reqprc,x0,x05,x1,x2,x4,pi,pi6,pi12,xlg2,bf(20),
0093      +      xninv(30),xn2inv(30),xinfac(30),
0094      +      fpij2(3,3),fpij3(6,6),fpij4(10,10),fpij5(15,15),
0095      +      fpij6(21,21),fdel2,fdel3,fdel4s,fdel4,fdl3i(5),
0096      +      fdl4si(5),fdl3ij(6,6),fd4sij(6,6),fdl4i(6),fodel2,
0097      +      fodel3,fodel4,fodl3i(5),fod3ij(6,6),fodl4i(6)
0098     integer fidel3,fidel4,fidl3i(5),fid3ij(6,6),fidl4i(6)
0099 *
0100 *   c[0124]:0,1,2,4 complex
0101 *   c05:    1/2 complex
0102 *   c2ipi:  2*i*pi
0103 *   cipi2:  i*pi**2
0104 *   cfp..:  complex version of fp..., only defined in ff[cz]*
0105 *   cmipj:  (internal only) mi^2 - pj^2 in C0
0106 *   c2sisj: (internal only) 2*si.sj in D0
0107 *   cfdl4s: del4s in complex case (D0)
0108 *   ca1:    (internal only) complex A1
0109 *   csdl2p: (internal only) complex transformed sqrt(del2)
0110 *
0111     DOUBLE COMPLEX c0,c05,c1,c2,c4,c2ipi,cipi2,
0112      +      cfpij2(3,3),cfpij3(6,6),cfpij4(10,10),cfpij5(15,15),
0113      +      cfpij6(21,21),cmipj(3,3),c2sisj(4,4),cfdl4s,ca1
0114 *
0115 *   nevent: number in integration loop (to be updated by user)
0116 *   ner:    can be used to signal numerical problems (see ffrcvr)
0117 *   id: identifier of scalar function (to be set by user)
0118 *   idsub:  internal identifier to pinpoint errors
0119 *   inx:    in D0: p(inx(i,j)) = isgn(i,j)*(s(i)-s(j))
0120 *   inx5:   in E0: p(inx5(i,j)) = isgn5(i,j)*(s(i)-s(j))
0121 *   inx6:   in F0: p(inx6(i,j)) = isgn6(i,j)*(s(i)-s(j))
0122 *   isgn:   see inx
0123 *   isgn5:  see inx5
0124 *   isgn6:  see inx6
0125 *   iold:   rotation matrix for 4point function
0126 *   isgrot: signs to iold
0127 *   isgn34: +1 or -1: which root to choose in the transformation (D0)
0128 *   isgnal: +1 or -1: which root to choose in the alpha-trick (C0)
0129 *   irota3: save the number of positions the C0 configuration has been 
0130 *       rotated over
0131 *   irota4: same for the D0
0132 *   irota5: same for the E0
0133 *   irota6: same for the F0
0134 *
0135     integer nevent,ner,id,idsub,inx(4,4),isgn(4,4),inx5(5,5),
0136      +      isgn5(5,5),inx6(6,6),isgn6(6,6),isgn34,isgnal,iold(13,
0137      +      12),isgrot(10,12),irota3,irota4,irota5,irota6
0138     integer idum93(2)
0139 *
0140 *   parameters
0141 *
0142     parameter(x0 = 0.d0,x1 = 1.d0,x05 = .5d0,x2 = 2.d0,x4 = 4.d0,
0143      +      c0 = (0.D0,0.D0),c05 = (.5D0,0.D0),c1 = (1.D0,0.D0),
0144      +      c2 = (2.D0,0.D0),c4 = (4.D0,0.D0))
0145     parameter(
0146      +      c2ipi = (0.D+0,6.28318530717958647692528676655896D+0),
0147      +      cipi2 = (0.D+0,9.869604401089358618834490999876D+0),
0148      +      pi  = 3.14159265358979323846264338327948D+0,
0149      +      pi6 = 1.644934066848226436472415166646D+0,
0150      +      pi12 = .822467033424113218236207583323D+0,
0151      +      xlg2 = .6931471805599453094172321214581D+0)
0152 *
0153 *   common
0154 *
0155     common /ffsign/isgn34,isgnal
0156     common /ffprec/ xloss,precx,precc,xalogm,xclogm,xalog2,xclog2,
0157      +      reqprc
0158     common /ffflag/ lwrite,ltest,l4also,ldc3c4,lmem,lwarn,ldot,
0159      +      nevent,ner,id,idsub,nwidth,nschem,onshel,idot
0160     common /ffcnst/ bf,xninv,xn2inv,xinfac,inx,isgn,iold,isgrot,
0161      +      inx5,isgn5,inx6,isgn6
0162     common /ffrota/ irota3,irota4,irota5,irota6
0163     common /ffdot/ fpij2,fpij3,fpij4,fpij5,fpij6
0164     common /ffdel/ fdel2,fdel3,fdel4s,fdel4,fdl3i,fdl4si,fdl3ij,
0165      +      fd4sij,fdl4i
0166     common /ffidel/ fidel3,fidel4,fidl3i,fid3ij,fidl4i
0167     common /ffcdot/ cfpij2,cfpij3,cfpij4,cfpij5,cfpij6
0168     common /ffcdel/ fodel2,fodel3,cfdl4s,fodel4,fodl3i,fod3ij,fodl4i
0169     common /ffsmug/ lsmug,lnasty,idum93,cmipj,c2sisj,ca1