1
double complex function qlcLi2omx2(z1,z2,ieps1,ieps2)
2
C Calculates Li[2](1-(z1+ieps1)*(z2+ieps2)) for complex z1,z2
3
C Using +Li2(1-z1*z2) for z1*z2<1
4
C and -Li2(1-1/(z1*z2))-1/2*(ln(z1)+ln(z2))^2 for z1*z2>1
6
include 'qlconstants.f'
7
double precision ieps1,ieps2,ieps
8
double complex z1,z2,lnarg,lnomarg,prod,cln,denspence,arg
10
ieps=sign(one,dreal(z2)*ieps1+dreal(z1)*ieps2)
11
if (abs(arg) .le. 1d0) then
12
if (arg .eq. 0d0 .or. arg .eq. 1d0) then
15
lnarg=cln(z1,ieps1)+cln(z2,ieps2)
16
lnomarg=cln(cone-arg,-ieps)
19
qlcLi2omx2=dcmplx(pisqo6)-denspence(arg,ieps)-prod
20
elseif (abs(arg) .gt. 1d0) then
22
lnomarg=cln(cone-arg,-ieps)
23
lnarg=-cln(z1,ieps1)-cln(z2,ieps2)
24
qlcLi2omx2=-dcmplx(pisqo6)+denspence(arg,ieps)
25
. +lnarg*lnomarg-0.5d0*lnarg**2