]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/c/rrizet64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / rrizet64.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:02:00 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if defined(CERNLIB_DOUBLE)
11 FUNCTION DRIZET(X)
12C
13#include "gen/imp64.inc"
14C
15 CHARACTER*(*) NAME
16 PARAMETER(NAME='RRIZET/DRIZET')
17#endif
18#if !defined(CERNLIB_DOUBLE)
19 FUNCTION RRIZET(X)
20C
21 CHARACTER*(*) NAME
22 PARAMETER(NAME='RRIZET')
23#endif
24C
25 DIMENSION P1(0:8),P2(0:8),P3(0:9),P4(0:8)
26 DIMENSION Q1(0:8),Q2(0:8),Q3(0:9),Q4(0:8)
27
28 PARAMETER (DELTA = 1D-13)
29 PARAMETER (Z1 = 1, HF = Z1/2, TH = Z1/3)
30 PARAMETER (PI = 3.14159 26535 89793 24D0)
31 PARAMETER (PIH = PI/2, PI2 = 2*PI)
32
33 DATA (P1(J),Q1(J),J=0,8)
34 A/ 1.28716 81214 82446 39D+10, 2.57433 62429 64846 24D+10,
35 1 1.37539 69320 37025 11D+10, 5.93816 56486 79590 16D+09,
36 2 5.10665 59183 64406 10D+09, 9.00633 03732 61233 44D+08,
37 3 8.56147 10024 33314 86D+08, 8.04253 66342 83289 89D+07,
38 4 7.48361 81243 80232 98D+07, 5.60971 17595 41920 06D+06,
39 5 4.86010 65854 61882 51D+06, 2.24743 12028 99137 52D+05,
40 6 2.73957 49902 21406 09D+05, 7.57457 89093 41537 56D+03,
41 7 4.63171 08431 83427 12D+03,-2.37383 57813 73772 62D+01,
42 8 5.78758 10040 96660 66D+01, 1/
43
44 DATA (P2(J),Q2(J),J=0,8)
45 A/-6.88197 29321 63489 54D+06,-1.29725 62493 48915 54D+09,
46 1 7.48218 91630 53159 72D+06,-9.48715 40757 99078 17D+08,
47 2 -2.07584 50481 02110 14D+06,-1.05496 19347 40052 03D+08,
48 3 3.55302 55709 62142 95D+05, 4.67774 48821 19930 48D+06,
49 4 -4.06706 44955 18548 89D+04, 3.12936 04057 38135 34D+06,
50 5 3.19804 86402 71469 11D+03, 4.59581 80383 93050 70D+05,
51 6 -1.69820 93703 37228 53D+02, 3.88176 10961 03968 34D+04,
52 7 5.61485 84239 42890 48D+00, 1.92561 54483 44914 23D+03,
53 8 -8.93888 70592 61549 44D-02, 5.12578 12500 00000 00D+01/
54
55 DATA (P3(J),Q3(J),J=0,9)
56 A/ 1.66156 48051 57746 76D-11,-6.99562 63351 91916 55D-10,
57 1 -4.68068 82766 06545 29D-09,-1.77757 96189 51492 57D-08,
58 2 5.83519 72731 91470 47D-07,-9.82231 82573 40780 36D-07,
59 3 -4.17644 01264 31456 02D-05,-2.84927 28275 90964 88D-05,
60 4 1.85468 42284 35979 59D-03,-5.81727 90938 80480 94D-04,
61 5 -5.11288 80022 04902 41D-02,-1.15848 74916 97665 86D-02,
62 6 8.10450 23175 11003 53D-01,-1.28149 12405 19781 96D-01,
63 7 -5.69951 94876 84789 23D+00,-1.11913 05734 90977 09D+00,
64 8 0 ,-7.67928 76160 46288 13D-01,
65 9 0 , 1/
66
67 DATA (P4(J),Q4(J),J=0,8)
68 A/ 1.03144 87718 88597 12D-15, 5.93959 41728 84190 50D-11,
69 1 -5.12584 61396 46882 41D-13,-6.04755 35907 99918 06D-09,
70 2 1.12948 79419 48735 48D-10, 3.64680 20866 83885 63D-07,
71 3 -1.44234 66537 31309 52D-08,-1.29456 90556 80118 12D-05,
72 4 1.16824 67698 44580 98D-06, 3.20189 49847 02292 50D-04,
73 5 -6.14975 16799 03148 06D-05,-5.07801 55709 99940 77D-03,
74 6 2.05594 67798 88303 28D-03, 5.49628 90788 15872 66D-02,
75 7 -3.99339 42939 46688 69D-02,-3.24517 61115 59724 19D-01,
76 8 3.45234 97673 61784 57D-01, 1/
77
78 V=X
79 F=1
80 IF(X .NE. 0 .AND. X .LT. HF) THEN
81 IX=X-DELTA
82 IF(ABS(IX-X) .LE. DELTA) THEN
83 IF(MOD(-IX,2) .EQ. 0) THEN
84 H=0
85 GO TO 9
86 ELSE
87 V=1-X
88#if defined(CERNLIB_DOUBLE)
89 F=2*(-Z1)**((1-IX)/2)*DGAMMA(V)/PI2**V
90#endif
91#if !defined(CERNLIB_DOUBLE)
92 F=2*(-Z1)**((1-IX)/2)*GAMMA(V)/PI2**V
93#endif
94 ENDIF
95 ELSE
96 V=1-X
97#if defined(CERNLIB_DOUBLE)
98 F=2*SIN(PIH*X)*DGAMMA(V)/PI2**V
99#endif
100#if !defined(CERNLIB_DOUBLE)
101 F=2*SIN(PIH*X)*GAMMA(V)/PI2**V
102#endif
103 ENDIF
104 ENDIF
105 IF(X .EQ. 0) THEN
106 H=-3*HF
107 ELSEIF(X .EQ. 1) THEN
108 H=0
109 CALL MTLPRT(NAME,'C315.1','ZETA(X) HAS POLE AT X = 1')
110 ELSEIF(V .LE. 5) THEN
111 AP=P1(8)
112 AQ=Q1(8)
113 DO 1 J = 7,0,-1
114 AP=P1(J)+V*AP
115 1 AQ=Q1(J)+V*AQ
116 H=AP/(AQ*(V-1))-1
117 ELSEIF(V .LE. 11) THEN
118 T=TH*(V-8)
119 ALFA=T+T
120 B1=0
121 B2=0
122 DO 2 J = 8,0,-1
123 B0=P2(J)+ALFA*B1-B2
124 B2=B1
125 2 B1=B0
126 H=B0-T*B2
127 B1=0
128 B2=0
129 DO 12 J = 8,0,-1
130 B0=Q2(J)+ALFA*B1-B2
131 B2=B1
132 12 B1=B0
133 H=H/(B0-T*B2)
134 ELSEIF(V .LE. 25) THEN
135 T=1/V
136 AP=P3(7)
137 DO 3 J = 6,0,-1
138 3 AP=P3(J)+T*AP
139 AQ=Q3(9)
140 DO 13 J = 8,0,-1
141 13 AQ=Q3(J)+T*AQ
142 H=HF**(V-T*AP/AQ)
143 ELSEIF(V .LE. 55) THEN
144 T=1/V
145 AP=P4(8)
146 AQ=Q4(8)
147 DO 4 J = 7,0,-1
148 AP=P4(J)+T*AP
149 4 AQ=Q4(J)+T*AQ
150 H=HF**(V-T*AP/AQ)
151 ELSEIF(V .LE. 90) THEN
152 H=HF**V+TH**V
153 ELSE
154 H=HF**V
155 ENDIF
156 IF(X .LT. 1) H=F*(1+H)
157#if defined(CERNLIB_DOUBLE)
158 9 DRIZET=H
159#endif
160#if !defined(CERNLIB_DOUBLE)
161 9 RRIZET=H
162#endif
163 RETURN
164 END