]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwuli2.f
ITS new Geometry files. Not yet ready for uses, committed to allow additional
[u/mrichter/AliRoot.git] / HERWIG / src / hwuli2.f
1
2 CDECK  ID>, HWULI2.
3
4 *CMZ :-        -23/08/94  13.22.29  by  Mike Seymour
5
6 *-- Author :    Ulrich Baur & Nigel Glover, adapted by Ian Knowles
7
8 C-----------------------------------------------------------------------
9
10       FUNCTION HWULI2(X)
11
12 C-----------------------------------------------------------------------
13
14 C     Complex dilogarithm function, Li_2 (Spence function)
15
16 C-----------------------------------------------------------------------
17
18       IMPLICIT NONE
19
20       DOUBLE COMPLEX HWULI2,PROD,Y,Y2,X,Z
21
22       DOUBLE PRECISION XR,XI,R2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2,
23
24      & ZERO,ONE,HALF
25
26       PARAMETER (ZERO=0.0D0, ONE=1.0D0, HALF=0.5D0)
27
28       DATA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2/ -0.250000000000000D0,
29
30      & -0.111111111111111D0,-0.010000000000000D0,-0.017006802721088D0,
31
32      & -0.019444444444444D0,-0.020661157024793D0,-0.021417300648069D0,
33
34      & -0.021948866377231D0,-0.022349233811171D0,-0.022663689135191D0,
35
36      &  1.644934066848226D0/
37
38       PROD(Y,Y2)=Y*(ONE+A1*Y*(ONE+A2*Y*(ONE+A3*Y2*(ONE+A4*Y2*(ONE+A5*Y2*
39
40      & (ONE+A6*Y2*(ONE+A7*Y2*(ONE+A8*Y2*(ONE+A9*Y2*(ONE+A10*Y2))))))))))
41
42       XR=DBLE(X)
43
44       XI=IMAG(X)
45
46       R2=XR*XR+XI*XI
47
48       IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN
49
50          Z=-LOG(ONE/X)
51
52          HWULI2=PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)+HALF*LOG(X)**2
53
54       ELSEIF (R2.GT.ONE.AND.(XR/R2).LE.HALF) THEN
55
56          Z=-LOG(ONE-ONE/X)
57
58          HWULI2=-PROD(Z,Z*Z)-ZETA2-HALF*LOG(-X)**2
59
60       ELSEIF (R2.EQ.ONE.AND.XI.EQ.ZERO) THEN
61
62          HWULI2=ZETA2
63
64       ELSEIF (R2.LE.ONE.AND.XR.GT.HALF) THEN
65
66          Z=-LOG(X)
67
68          HWULI2=-PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)
69
70       ELSE
71
72          Z=-LOG(ONE-X)
73
74          HWULI2=PROD(Z,Z*Z)
75
76       ENDIF
77
78       END