4 *CMZ :- -23/08/94 13.22.29 by Mike Seymour
6 *-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
8 C-----------------------------------------------------------------------
12 C-----------------------------------------------------------------------
14 C Complex dilogarithm function, Li_2 (Spence function)
16 C-----------------------------------------------------------------------
20 DOUBLE COMPLEX HWULI2,PROD,Y,Y2,X,Z
22 DOUBLE PRECISION XR,XI,R2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2,
26 PARAMETER (ZERO=0.0D0, ONE=1.0D0, HALF=0.5D0)
28 DATA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2/ -0.250000000000000D0,
30 & -0.111111111111111D0,-0.010000000000000D0,-0.017006802721088D0,
32 & -0.019444444444444D0,-0.020661157024793D0,-0.021417300648069D0,
34 & -0.021948866377231D0,-0.022349233811171D0,-0.022663689135191D0,
36 & 1.644934066848226D0/
38 PROD(Y,Y2)=Y*(ONE+A1*Y*(ONE+A2*Y*(ONE+A3*Y2*(ONE+A4*Y2*(ONE+A5*Y2*
40 & (ONE+A6*Y2*(ONE+A7*Y2*(ONE+A8*Y2*(ONE+A9*Y2*(ONE+A10*Y2))))))))))
48 IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN
52 HWULI2=PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)+HALF*LOG(X)**2
54 ELSEIF (R2.GT.ONE.AND.(XR/R2).LE.HALF) THEN
58 HWULI2=-PROD(Z,Z*Z)-ZETA2-HALF*LOG(-X)**2
60 ELSEIF (R2.EQ.ONE.AND.XI.EQ.ZERO) THEN
64 ELSEIF (R2.LE.ONE.AND.XR.GT.HALF) THEN
68 HWULI2=-PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)