~maddevelopers/mg5amcnlo/3.0.1

« back to all changes in this revision

Viewing changes to vendor/IREGI/src/qcdloop/ql/qlLi2omprod.f

  • Committer: Marco Zaro
  • Date: 2014-01-27 16:54:10 UTC
  • mfrom: (78.124.55 MG5_aMC_2.1)
  • Revision ID: marco.zaro@gmail.com-20140127165410-5lma8c2hzbzm426j
merged with lp:~maddevelopers/madgraph5/MG5_aMC_2.1 r 267

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      double complex function qlLi2omprod(v,w,z,iep)
 
2
      implicit none
 
3
      include 'qlconstants.f'
 
4
c     expression for dilog(1-(v-i*ep)/(w-i*ep)*(z+iep)) 
 
5
C     for real v,w and complex z
 
6
      double precision v,w,y,ddilog,rarg,omrarg,iep
 
7
      double complex qllnrat,lnarg,lnomarg,prod,arg,omarg,z,cln,
 
8
     . denspence
 
9
      if (abs(dimag(z)) .lt. 1d-15) then
 
10
C----case for real z
 
11
      y=dreal(z)
 
12
      rarg=v*y/w
 
13
      omrarg=1d0-rarg
 
14
      if (rarg .le. 1d0) then
 
15
         if (rarg .eq. 0d0 .or. rarg .eq. 1d0) then 
 
16
            prod=0d0
 
17
         else
 
18
            lnarg=qllnrat(v,w)+cln(z,iep)
 
19
            lnomarg=dcmplx(log(omrarg))
 
20
            prod=lnarg*lnomarg
 
21
         endif
 
22
         qlLi2omprod=dcmplx(pisqo6-ddilog(rarg))-prod
 
23
      elseif (rarg .gt. 1d0) then
 
24
         rarg=w/(y*v)
 
25
         lnarg=-qllnrat(v,w)-cln(z,iep)
 
26
         lnomarg=dcmplx(log(1d0-rarg))
 
27
         qlLi2omprod=-dcmplx(pisqo6-ddilog(rarg))+lnarg*lnomarg
 
28
     .   -0.5d0*lnarg**2
 
29
      endif
 
30
      else
 
31
C----case for complex z
 
32
      arg=dcmplx(v/w)*z
 
33
      omarg=cone-arg
 
34
      if (abs(arg) .le. 1d0) then
 
35
         if (abs(arg) .eq. 0d0 .or. abs(arg) .eq. 1d0) then 
 
36
            prod=0d0
 
37
         else
 
38
            lnarg=qllnrat(v,w)+cln(z,iep)
 
39
            lnomarg=log(omarg)
 
40
            prod=lnarg*lnomarg
 
41
         endif
 
42
         qlLi2omprod=dcmplx(pisqo6)-denspence(arg,1d0)-prod
 
43
      elseif (abs(arg) .gt. 1d0) then
 
44
         arg=w/(z*v)
 
45
         lnarg=-qllnrat(v,w)-cln(z,iep)
 
46
         lnomarg=log(cone-arg)
 
47
         qlLi2omprod=-dcmplx(pisqo6)+denspence(arg,1d0)+lnarg*lnomarg
 
48
     .   -0.5d0*lnarg**2
 
49
      endif
 
50
 
 
51
      endif
 
52
      return 
 
53
      end