~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

Viewing changes to vendor/CutTools/src/qcdloop/qlbox11.f

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine qlbox11(Y,musq,Ires)
 
2
      implicit none
 
3
C  I^{\{D=4-2 \epsilon\}}_4(0,m_3^2,\pt^2,m_4^2;s_{12},s_{23};0,0,m_3^2,m_4^2)
 
4
 
 
5
c y11=
 
6
c [                              m3sq - s12                            ]
 
7
c [     0           0            ----------                0           ]
 
8
c [                                  2                                 ]
 
9
c [                                                                    ]
 
10
c [                                                    m4sq - s23      ]
 
11
c [     0           0                0                 ----------      ]
 
12
c [                                                        2           ]
 
13
c [                                                                    ]
 
14
c [ m3sq - s12                                    - p3sq + m4sq + m3sq ]
 
15
c [ ----------      0               m3sq          -------------------- ]
 
16
c [     2                                                  2           ]
 
17
c [                                                                    ]
 
18
c [             m4sq - s23  - p3sq + m4sq + m3sq                       ]
 
19
c [     0       ----------  --------------------          m4sq         ]
 
20
c [                 2                2                                 ]
 
21
      include 'qlconstants.f'
 
22
      integer iep
 
23
      logical qlzero
 
24
      double precision Y(4,4),p3sq,m3sq,m4sq,musq,
 
25
     . m3mu,m4mu,sibar,tabar,x43p,x43m,x43pm1,x43mm1,ieps2
 
26
      double complex wlogt,wlogs,qllnrat,Ires(-2:0),Intbit,
 
27
     . root,cln,ln43m,ln43p,ga43p,ga43pm1,ga43m,ga43mm1,rat2p,rat2m
 
28
 
 
29
      m3sq=Y(3,3)
 
30
      m4sq=Y(4,4)
 
31
      sibar=2d0*Y(1,3)
 
32
      tabar=2d0*Y(2,4)
 
33
      p3sq=-(2d0*Y(3,4)-Y(3,3)-Y(4,4))
 
34
 
 
35
      m3mu=sqrt(m3sq*musq)
 
36
      m4mu=sqrt(m4sq*musq)
 
37
      wlogt=qllnrat(tabar,m4mu)
 
38
      wlogs=qllnrat(sibar,m3mu)
 
39
 
 
40
C----evaluate gamma's for the case p3sq=0
 
41
      if (qlzero(p3sq)) then
 
42
      root=cone
 
43
      x43p=-one
 
44
      x43pm1=-one
 
45
      x43m=m3sq
 
46
      x43mm1=m4sq
 
47
      else
 
48
      root=dcmplx((p3sq+m3sq-m4sq)**2-4d0*m3sq*p3sq)
 
49
      root=sqrt(root)
 
50
      ga43p=  dcmplx(+p3sq+m3sq-m4sq)+root
 
51
      ga43pm1=dcmplx(-p3sq+m3sq-m4sq)+root
 
52
      ga43m=  dcmplx(+p3sq+m3sq-m4sq)-root
 
53
      ga43mm1=dcmplx(-p3sq+m3sq-m4sq)-root
 
54
 
 
55
      x43p=  -dreal(ga43p)
 
56
      x43pm1=-dreal(ga43pm1)
 
57
      x43m=   dreal(ga43m)
 
58
      x43mm1= dreal(ga43mm1)
 
59
      endif
 
60
 
 
61
 
 
62
C----deal with real roots
 
63
      if (qlzero(dimag(root))) then
 
64
      ln43p=qllnrat(x43p,x43pm1)
 
65
      ln43m=qllnrat(x43m,x43mm1)
 
66
      else
 
67
      call qlratgam(rat2p,rat2m,ieps2,p3sq,m4sq,m3sq)      
 
68
      ln43p=cln(rat2p,ieps2)
 
69
      ln43m=cln(rat2m,ieps2)
 
70
 
 
71
      endif
 
72
 
 
73
      if (qlzero(p3sq)) then
 
74
      Intbit=-chalf*log(m3sq/m4sq)**2
 
75
      else
 
76
      Intbit=-chalf*(ln43p**2+ln43m**2)
 
77
      endif
 
78
 
 
79
      Ires(-2)=cone
 
80
      Ires(-1)=-wlogt-wlogs
 
81
      Ires( 0)=Intbit
 
82
     . +ctwo*wlogt*wlogs-dcmplx(0.5d0*pisq)
 
83
     . +dcmplx(0.25d0*log(m3sq/m4sq)**2)
 
84
      do iep=-2,0
 
85
      Ires(iep)=Ires(iep)/dcmplx(sibar*tabar)
 
86
      enddo
 
87
      return
 
88
      end
 
89