]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:05 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | #if defined(CERNLIB_DOUBLE) | |
11 | FUNCTION DDILOG(X) | |
12 | #include "gen/imp64.inc" | |
13 | #endif | |
14 | #if !defined(CERNLIB_DOUBLE) | |
15 | FUNCTION RDILOG(X) | |
16 | #endif | |
17 | DIMENSION C(0:19) | |
18 | ||
19 | PARAMETER (Z1 = 1, HF = Z1/2) | |
20 | PARAMETER (PI = 3.14159 26535 89793 24D0) | |
21 | PARAMETER (PI3 = PI**2/3, PI6 = PI**2/6, PI12 = PI**2/12) | |
22 | ||
23 | DATA C( 0) / 0.42996 69356 08136 97D0/ | |
24 | DATA C( 1) / 0.40975 98753 30771 05D0/ | |
25 | DATA C( 2) /-0.01858 84366 50145 92D0/ | |
26 | DATA C( 3) / 0.00145 75108 40622 68D0/ | |
27 | DATA C( 4) /-0.00014 30418 44423 40D0/ | |
28 | DATA C( 5) / 0.00001 58841 55418 80D0/ | |
29 | DATA C( 6) /-0.00000 19078 49593 87D0/ | |
30 | DATA C( 7) / 0.00000 02419 51808 54D0/ | |
31 | DATA C( 8) /-0.00000 00319 33412 74D0/ | |
32 | DATA C( 9) / 0.00000 00043 45450 63D0/ | |
33 | DATA C(10) /-0.00000 00006 05784 80D0/ | |
34 | DATA C(11) / 0.00000 00000 86120 98D0/ | |
35 | DATA C(12) /-0.00000 00000 12443 32D0/ | |
36 | DATA C(13) / 0.00000 00000 01822 56D0/ | |
37 | DATA C(14) /-0.00000 00000 00270 07D0/ | |
38 | DATA C(15) / 0.00000 00000 00040 42D0/ | |
39 | DATA C(16) /-0.00000 00000 00006 10D0/ | |
40 | DATA C(17) / 0.00000 00000 00000 93D0/ | |
41 | DATA C(18) /-0.00000 00000 00000 14D0/ | |
42 | DATA C(19) /+0.00000 00000 00000 02D0/ | |
43 | ||
44 | IF(X .EQ. 1) THEN | |
45 | H=PI6 | |
46 | ELSEIF(X .EQ. -1) THEN | |
47 | H=-PI12 | |
48 | ELSE | |
49 | T=-X | |
50 | IF(T .LE. -2) THEN | |
51 | Y=-1/(1+T) | |
52 | S=1 | |
53 | A=-PI3+HF*(LOG(-T)**2-LOG(1+1/T)**2) | |
54 | ELSEIF(T .LT. -1) THEN | |
55 | Y=-1-T | |
56 | S=-1 | |
57 | A=LOG(-T) | |
58 | A=-PI6+A*(A+LOG(1+1/T)) | |
59 | ELSE IF(T .LE. -HF) THEN | |
60 | Y=-(1+T)/T | |
61 | S=1 | |
62 | A=LOG(-T) | |
63 | A=-PI6+A*(-HF*A+LOG(1+T)) | |
64 | ELSE IF(T .LT. 0) THEN | |
65 | Y=-T/(1+T) | |
66 | S=-1 | |
67 | A=HF*LOG(1+T)**2 | |
68 | ELSE IF(T .LE. 1) THEN | |
69 | Y=T | |
70 | S=1 | |
71 | A=0 | |
72 | ELSE | |
73 | Y=1/T | |
74 | S=-1 | |
75 | A=PI6+HF*LOG(T)**2 | |
76 | ENDIF | |
77 | H=Y+Y-1 | |
78 | ALFA=H+H | |
79 | B1=0 | |
80 | B2=0 | |
81 | DO 1 I = 19,0,-1 | |
82 | B0=C(I)+ALFA*B1-B2 | |
83 | B2=B1 | |
84 | 1 B1=B0 | |
85 | H=-(S*(B0-H*B2)+A) | |
86 | ENDIF | |
87 | #if defined(CERNLIB_DOUBLE) | |
88 | DDILOG=H | |
89 | #endif | |
90 | #if !defined(CERNLIB_DOUBLE) | |
91 | DILOG=H | |
92 | #endif | |
93 | RETURN | |
94 | END |