1
DOUBLE PRECISION FUNCTION DDILOG(X)
3
DOUBLE PRECISION X,Y,T,S,A,PI3,PI6,ZERO,ONE,HALF,MALF,MONE,MTWO
4
DOUBLE PRECISION C(0:18),H,ALFA,B0,B1,B2
6
DATA ZERO /0.0D0/, ONE /1.0D0/
7
DATA HALF /0.5D0/, MALF /-0.5D0/, MONE /-1.0D0/, MTWO /-2.0D0/
8
DATA PI3 /3.289868133696453D0/, PI6 /1.644934066848226D0/
10
DATA C( 0) / 0.4299669356081370D0/
11
DATA C( 1) / 0.4097598753307711D0/
12
DATA C( 2) /-0.0185884366501460D0/
13
DATA C( 3) / 0.0014575108406227D0/
14
DATA C( 4) /-0.0001430418444234D0/
15
DATA C( 5) / 0.0000158841554188D0/
16
DATA C( 6) /-0.0000019078495939D0/
17
DATA C( 7) / 0.0000002419518085D0/
18
DATA C( 8) /-0.0000000319334127D0/
19
DATA C( 9) / 0.0000000043454506D0/
20
DATA C(10) /-0.0000000006057848D0/
21
DATA C(11) / 0.0000000000861210D0/
22
DATA C(12) /-0.0000000000124433D0/
23
DATA C(13) / 0.0000000000018226D0/
24
DATA C(14) /-0.0000000000002701D0/
25
DATA C(15) / 0.0000000000000404D0/
26
DATA C(16) /-0.0000000000000061D0/
27
DATA C(17) / 0.0000000000000009D0/
28
DATA C(18) /-0.0000000000000001D0/
33
ELSE IF(X .EQ. MONE) THEN
41
A=-PI3+HALF*(LOG(-T)**2-LOG(ONE+ONE/T)**2)
42
ELSE IF(T .LT. MONE) THEN
46
A=-PI6+A*(A+LOG(ONE+ONE/T))
47
ELSE IF(T .LE. MALF) THEN
51
A=-PI6+A*(MALF*A+LOG(ONE+T))
52
ELSE IF(T .LT. ZERO) THEN
56
ELSE IF(T .LE. ONE) THEN
74
DDILOG=-(S*(B0-H*B2)+A)