~maddevelopers/mg5amcnlo/3.0.2

« back to all changes in this revision

Viewing changes to vendor/IREGI/src/qcdloop/ql/qlcLi2omx3.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 qlcLi2omx3(z1,z2,z3,ieps1,ieps2,ieps3)
 
2
C     Calculate Li[2](1-(z1+ieps1)*(z2+ieps2)*(z3+ieps3)) 
 
3
C     Using +cLi2(1-z1*z2*z3)                           
 
4
C --- for |z1*z2*z3|<1
 
5
C     and   -cLi2(1-1/(z1*z2*z3))-1/2*(ln(z1)+ln(z2)+ln(z3))^2 
 
6
C---- for |z1*z2*z3|>1
 
7
      implicit none
 
8
      include 'qlconstants.f'
 
9
      double precision ieps1,ieps2,ieps3,ieps
 
10
      double complex arg,lnarg,lnomarg,prod,denspence,z1,z2,z3,cln
 
11
      logical qlzero
 
12
      arg=z1*z2*z3
 
13
      if (qlzero(dimag(arg))) ieps=
 
14
     .sign(one,dreal(z2*z3)*ieps1+dreal(z1*z3)*ieps2+dreal(z1*z2)*ieps3)
 
15
 
 
16
      if (abs(arg) .le. 1d0) then
 
17
         if (arg .eq. 0d0 .or. arg .eq. 1d0) then
 
18
            prod=0d0
 
19
         else
 
20
            lnarg=cln(z1,ieps1)+cln(z2,ieps2)+cln(z3,ieps3)
 
21
            lnomarg=cln(cone-arg,0d0)
 
22
            prod = lnarg*lnomarg
 
23
         endif
 
24
         qlcLi2omx3=dcmplx(pisqo6)-denspence(dcmplx(arg),ieps)-prod
 
25
      elseif (abs(arg) .gt. 1d0) then
 
26
         arg=1d0/(z1*z2*z3)
 
27
         lnarg=-cln(z1,ieps1)-cln(z2,ieps2)-cln(z3,ieps3)
 
28
         lnomarg=cln(cone-arg,0d0)
 
29
         qlcLi2omx3=-dcmplx(pisqo6)+denspence(dcmplx(arg),ieps)
 
30
     .   +lnarg*lnomarg-0.5d0*lnarg**2
 
31
      endif
 
32
      return
 
33
      end