Add correct AliFemtoFsiTools.F file
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoFsiTools.F
CommitLineData
37e4484e 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
6* First version on CVS
7*
8* Revision 1.1.1.1 1996/04/01 15:01:55 mclareni
9* Mathlib gen
10*
11*
12 FUNCTION CGAMMA(Z)
13
14 DIMENSION C(0:15)
15 COMPLEX*8 Z,CGAMMA
16 COMPLEX*8 U,V,F,H,S
17 CHARACTER NAME*(*)
18 CHARACTER*80 ERRTXT
19 PARAMETER (NAME = 'CGAMMA')
20
21 PARAMETER (Z1 = 1, HF = Z1/2)
22
23 DATA PI /3.14159 26535 89793 24D0/
24 DATA C1 /2.50662 82746 31000 50D0/
25
26 DATA C( 0) / 41.62443 69164 39068D0/
27 DATA C( 1) /-51.22424 10223 74774D0/
28 DATA C( 2) / 11.33875 58134 88977D0/
29 DATA C( 3) / -0.74773 26877 72388D0/
30 DATA C( 4) / 0.00878 28774 93061D0/
31 DATA C( 5) / -0.00000 18990 30264D0/
32 DATA C( 6) / 0.00000 00019 46335D0/
33 DATA C( 7) / -0.00000 00001 99345D0/
34 DATA C( 8) / 0.00000 00000 08433D0/
35 DATA C( 9) / 0.00000 00000 01486D0/
36 DATA C(10) / -0.00000 00000 00806D0/
37 DATA C(11) / 0.00000 00000 00293D0/
38 DATA C(12) / -0.00000 00000 00102D0/
39 DATA C(13) / 0.00000 00000 00037D0/
40 DATA C(14) / -0.00000 00000 00014D0/
41 DATA C(15) / 0.00000 00000 00006D0/
42
43
44 U=Z
45 X=U
46 IF(AIMAG(U) .EQ. 0 .AND. -ABS(X) .EQ. INT(X)) THEN
47 F=0
48 H=0
49 WRITE(ERRTXT,101) X
50c CALL MTLPRT(NAME,'C305.1',ERRTXT)
51 ELSE
52 IF(X .GE. 1) THEN
53 F=1
54 V=U
55 ELSEIF(X .GE. 0) THEN
56 F=1/U
57 V=1+U
58 ELSE
59 F=1
60 V=1-U
61 END IF
62 H=1
63 S=C(0)
64 DO 1 K = 1,15
65 H=((V-K)/(V+(K-1)))*H
66 1 S=S+C(K)*H
67 H=V+(4+HF)
68 H=C1*EXP((V-HF)*LOG(H)-H)*S
69 IF(X .LT. 0) H=PI/(SIN(PI*U)*H)
70 ENDIF
71 CGAMMA=F*H
72 RETURN
73 101 FORMAT('ARGUMENT EQUALS NON-POSITIVE INTEGER = ',1P,E15.1)
74 END
75
76*
77* $Id$
78*
79* $Log$
80* Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
81* First version on CVS
82*
83* Revision 1.1.1.1 1996/04/01 15:02:02 mclareni
84* Mathlib gen
85*
86*
87 FUNCTION DFRSIN(X)
88
89 IMPLICIT REAL*8 (A-H,O-Z)
90 DIMENSION A(0:16),B(0:15),C1(0:25),C2(0:28)
91
92 PARAMETER (Z1 = 1, R8 = Z1/8, R32 = Z1/32)
93
94 DATA C0 /1.25331 41373 15500 3D0/
95
96 DATA NA,NB,NC1,NC2 /16,15,25,28/
97
98 DATA A( 0) / 0.76435 13866 41860 002D0/
99 DATA A( 1) /-0.43135 54754 76601 793D0/
100 DATA A( 2) / 0.43288 19997 97266 531D0/
101 DATA A( 3) /-0.26973 31033 83871 110D0/
102 DATA A( 4) / 0.08416 04532 08769 354D0/
103 DATA A( 5) /-0.01546 52448 44613 820D0/
104 DATA A( 6) / 0.00187 85542 34398 220D0/
105 DATA A( 7) /-0.00016 26497 76188 875D0/
106 DATA A( 8) / 0.00001 05739 76563 833D0/
107 DATA A( 9) /-0.00000 05360 93398 892D0/
108 DATA A(10) / 0.00000 00218 16584 549D0/
109 DATA A(11) /-0.00000 00007 29016 212D0/
110 DATA A(12) / 0.00000 00000 20373 325D0/
111 DATA A(13) /-0.00000 00000 00483 440D0/
112 DATA A(14) / 0.00000 00000 00009 865D0/
113 DATA A(15) /-0.00000 00000 00000 175D0/
114 DATA A(16) / 0.00000 00000 00000 003D0/
115
116 DATA B( 0) / 0.63041 40431 45705 392D0/
117 DATA B( 1) /-0.42344 51140 57053 335D0/
118 DATA B( 2) / 0.37617 17264 33436 566D0/
119 DATA B( 3) /-0.16249 48915 45095 674D0/
120 DATA B( 4) / 0.03822 25577 86330 087D0/
121 DATA B( 5) /-0.00564 56347 71321 909D0/
122 DATA B( 6) / 0.00057 45495 19768 974D0/
123 DATA B( 7) /-0.00004 28707 15321 020D0/
124 DATA B( 8) / 0.00000 24512 07499 233D0/
125 DATA B( 9) /-0.00000 01109 88418 409D0/
126 DATA B(10) / 0.00000 00040 82497 317D0/
127 DATA B(11) /-0.00000 00001 24498 302D0/
128 DATA B(12) / 0.00000 00000 03200 484D0/
129 DATA B(13) /-0.00000 00000 00070 324D0/
130 DATA B(14) / 0.00000 00000 00001 336D0/
131 DATA B(15) /-0.00000 00000 00000 022D0/
132
133 DATA C1( 0) / 0.99056 04793 73497 549D0/
134 DATA C1( 1) /-0.01218 35098 31478 997D0/
135 DATA C1( 2) /-0.00248 27428 23113 060D0/
136 DATA C1( 3) / 0.00026 60949 52647 247D0/
137 DATA C1( 4) /-0.00000 10790 68987 406D0/
138 DATA C1( 5) /-0.00000 48836 81753 933D0/
139 DATA C1( 6) / 0.00000 09990 55266 368D0/
140 DATA C1( 7) /-0.00000 00750 92717 372D0/
141 DATA C1( 8) /-0.00000 00190 79487 573D0/
142 DATA C1( 9) / 0.00000 00090 90797 293D0/
143 DATA C1(10) /-0.00000 00019 66236 033D0/
144 DATA C1(11) / 0.00000 00001 64772 911D0/
145 DATA C1(12) / 0.00000 00000 63079 714D0/
146 DATA C1(13) /-0.00000 00000 36432 219D0/
147 DATA C1(14) / 0.00000 00000 10536 930D0/
148 DATA C1(15) /-0.00000 00000 01716 438D0/
149 DATA C1(16) /-0.00000 00000 00107 124D0/
150 DATA C1(17) / 0.00000 00000 00204 099D0/
151 DATA C1(18) /-0.00000 00000 00090 064D0/
152 DATA C1(19) / 0.00000 00000 00025 506D0/
153 DATA C1(20) /-0.00000 00000 00004 036D0/
154 DATA C1(21) /-0.00000 00000 00000 570D0/
155 DATA C1(22) / 0.00000 00000 00000 762D0/
156 DATA C1(23) /-0.00000 00000 00000 363D0/
157 DATA C1(24) / 0.00000 00000 00000 118D0/
158 DATA C1(25) /-0.00000 00000 00000 025D0/
159
160 DATA C2( 0) / 0.04655 77987 37516 4561D0/
161 DATA C2( 1) / 0.04499 21302 01239 4140D0/
162 DATA C2( 2) /-0.00175 42871 39651 4532D0/
163 DATA C2( 3) /-0.00014 65340 02581 0678D0/
164 DATA C2( 4) / 0.00003 91330 40863 0159D0/
165 DATA C2( 5) /-0.00000 34932 28659 7731D0/
166 DATA C2( 6) /-0.00000 03153 53003 2345D0/
167 DATA C2( 7) / 0.00000 01876 58200 8529D0/
168 DATA C2( 8) /-0.00000 00377 55280 4930D0/
169 DATA C2( 9) / 0.00000 00026 65516 5010D0/
170 DATA C2(10) / 0.00000 00010 88144 8122D0/
171 DATA C2(11) /-0.00000 00005 35500 7671D0/
172 DATA C2(12) / 0.00000 00001 31576 5447D0/
173 DATA C2(13) /-0.00000 00000 15286 0881D0/
174 DATA C2(14) /-0.00000 00000 03394 7646D0/
175 DATA C2(15) / 0.00000 00000 02702 0267D0/
176 DATA C2(16) /-0.00000 00000 00946 3142D0/
177 DATA C2(17) / 0.00000 00000 00207 1565D0/
178 DATA C2(18) /-0.00000 00000 00012 6931D0/
179 DATA C2(19) /-0.00000 00000 00013 9756D0/
180 DATA C2(20) / 0.00000 00000 00008 5929D0/
181 DATA C2(21) /-0.00000 00000 00003 1070D0/
182 DATA C2(22) / 0.00000 00000 00000 7515D0/
183 DATA C2(23) /-0.00000 00000 00000 0648D0/
184 DATA C2(24) /-0.00000 00000 00000 0522D0/
185 DATA C2(25) / 0.00000 00000 00000 0386D0/
186 DATA C2(26) /-0.00000 00000 00000 0165D0/
187 DATA C2(27) / 0.00000 00000 00000 0050D0/
188 DATA C2(28) /-0.00000 00000 00000 0009D0/
189
190 V=ABS(X)
191 IF(V .LT. 8) THEN
192 Y=R8*V
193 H=2*Y**2-1
194 ALFA=H+H
195 B1=0
196 B2=0
197 DO 4 I = NB,0,-1
198 B0=B(I)+ALFA*B1-B2
199 B2=B1
200 4 B1=B0
201 H=SQRT(V)*Y*(B0-B2)
202 ELSE
203 R=1/V
204 H=10*R-1
205 ALFA=H+H
206 B1=0
207 B2=0
208 DO 5 I = NC1,0,-1
209 B0=C1(I)+ALFA*B1-B2
210 B2=B1
211 5 B1=B0
212 S=B0-H*B2
213 B1=0
214 B2=0
215 DO 6 I = NC2,0,-1
216 B0=C2(I)+ALFA*B1-B2
217 B2=B1
218 6 B1=B0
219 H=C0-SQRT(R)*(S*COS(V)+(B0-H*B2)*SIN(V))
220 END IF
221 IF(X .LT. 0) H=-H
222 DFRSIN=H
223 return
224 end
225
226
227 function DFRCOS(X)
228
229 IMPLICIT REAL*8 (A-H,O-Z)
230 DIMENSION A(0:16),B(0:15),C1(0:25),C2(0:28)
231
232 PARAMETER (Z1 = 1, R8 = Z1/8, R32 = Z1/32)
233
234 DATA C0 /1.25331 41373 15500 3D0/
235
236 DATA NA,NB,NC1,NC2 /16,15,25,28/
237
238 DATA A( 0) / 0.76435 13866 41860 002D0/
239 DATA A( 1) /-0.43135 54754 76601 793D0/
240 DATA A( 2) / 0.43288 19997 97266 531D0/
241 DATA A( 3) /-0.26973 31033 83871 110D0/
242 DATA A( 4) / 0.08416 04532 08769 354D0/
243 DATA A( 5) /-0.01546 52448 44613 820D0/
244 DATA A( 6) / 0.00187 85542 34398 220D0/
245 DATA A( 7) /-0.00016 26497 76188 875D0/
246 DATA A( 8) / 0.00001 05739 76563 833D0/
247 DATA A( 9) /-0.00000 05360 93398 892D0/
248 DATA A(10) / 0.00000 00218 16584 549D0/
249 DATA A(11) /-0.00000 00007 29016 212D0/
250 DATA A(12) / 0.00000 00000 20373 325D0/
251 DATA A(13) /-0.00000 00000 00483 440D0/
252 DATA A(14) / 0.00000 00000 00009 865D0/
253 DATA A(15) /-0.00000 00000 00000 175D0/
254 DATA A(16) / 0.00000 00000 00000 003D0/
255
256 DATA B( 0) / 0.63041 40431 45705 392D0/
257 DATA B( 1) /-0.42344 51140 57053 335D0/
258 DATA B( 2) / 0.37617 17264 33436 566D0/
259 DATA B( 3) /-0.16249 48915 45095 674D0/
260 DATA B( 4) / 0.03822 25577 86330 087D0/
261 DATA B( 5) /-0.00564 56347 71321 909D0/
262 DATA B( 6) / 0.00057 45495 19768 974D0/
263 DATA B( 7) /-0.00004 28707 15321 020D0/
264 DATA B( 8) / 0.00000 24512 07499 233D0/
265 DATA B( 9) /-0.00000 01109 88418 409D0/
266 DATA B(10) / 0.00000 00040 82497 317D0/
267 DATA B(11) /-0.00000 00001 24498 302D0/
268 DATA B(12) / 0.00000 00000 03200 484D0/
269 DATA B(13) /-0.00000 00000 00070 324D0/
270 DATA B(14) / 0.00000 00000 00001 336D0/
271 DATA B(15) /-0.00000 00000 00000 022D0/
272
273 DATA C1( 0) / 0.99056 04793 73497 549D0/
274 DATA C1( 1) /-0.01218 35098 31478 997D0/
275 DATA C1( 2) /-0.00248 27428 23113 060D0/
276 DATA C1( 3) / 0.00026 60949 52647 247D0/
277 DATA C1( 4) /-0.00000 10790 68987 406D0/
278 DATA C1( 5) /-0.00000 48836 81753 933D0/
279 DATA C1( 6) / 0.00000 09990 55266 368D0/
280 DATA C1( 7) /-0.00000 00750 92717 372D0/
281 DATA C1( 8) /-0.00000 00190 79487 573D0/
282 DATA C1( 9) / 0.00000 00090 90797 293D0/
283 DATA C1(10) /-0.00000 00019 66236 033D0/
284 DATA C1(11) / 0.00000 00001 64772 911D0/
285 DATA C1(12) / 0.00000 00000 63079 714D0/
286 DATA C1(13) /-0.00000 00000 36432 219D0/
287 DATA C1(14) / 0.00000 00000 10536 930D0/
288 DATA C1(15) /-0.00000 00000 01716 438D0/
289 DATA C1(16) /-0.00000 00000 00107 124D0/
290 DATA C1(17) / 0.00000 00000 00204 099D0/
291 DATA C1(18) /-0.00000 00000 00090 064D0/
292 DATA C1(19) / 0.00000 00000 00025 506D0/
293 DATA C1(20) /-0.00000 00000 00004 036D0/
294 DATA C1(21) /-0.00000 00000 00000 570D0/
295 DATA C1(22) / 0.00000 00000 00000 762D0/
296 DATA C1(23) /-0.00000 00000 00000 363D0/
297 DATA C1(24) / 0.00000 00000 00000 118D0/
298 DATA C1(25) /-0.00000 00000 00000 025D0/
299
300 DATA C2( 0) / 0.04655 77987 37516 4561D0/
301 DATA C2( 1) / 0.04499 21302 01239 4140D0/
302 DATA C2( 2) /-0.00175 42871 39651 4532D0/
303 DATA C2( 3) /-0.00014 65340 02581 0678D0/
304 DATA C2( 4) / 0.00003 91330 40863 0159D0/
305 DATA C2( 5) /-0.00000 34932 28659 7731D0/
306 DATA C2( 6) /-0.00000 03153 53003 2345D0/
307 DATA C2( 7) / 0.00000 01876 58200 8529D0/
308 DATA C2( 8) /-0.00000 00377 55280 4930D0/
309 DATA C2( 9) / 0.00000 00026 65516 5010D0/
310 DATA C2(10) / 0.00000 00010 88144 8122D0/
311 DATA C2(11) /-0.00000 00005 35500 7671D0/
312 DATA C2(12) / 0.00000 00001 31576 5447D0/
313 DATA C2(13) /-0.00000 00000 15286 0881D0/
314 DATA C2(14) /-0.00000 00000 03394 7646D0/
315 DATA C2(15) / 0.00000 00000 02702 0267D0/
316 DATA C2(16) /-0.00000 00000 00946 3142D0/
317 DATA C2(17) / 0.00000 00000 00207 1565D0/
318 DATA C2(18) /-0.00000 00000 00012 6931D0/
319 DATA C2(19) /-0.00000 00000 00013 9756D0/
320 DATA C2(20) / 0.00000 00000 00008 5929D0/
321 DATA C2(21) /-0.00000 00000 00003 1070D0/
322 DATA C2(22) / 0.00000 00000 00000 7515D0/
323 DATA C2(23) /-0.00000 00000 00000 0648D0/
324 DATA C2(24) /-0.00000 00000 00000 0522D0/
325 DATA C2(25) / 0.00000 00000 00000 0386D0/
326 DATA C2(26) /-0.00000 00000 00000 0165D0/
327 DATA C2(27) / 0.00000 00000 00000 0050D0/
328 DATA C2(28) /-0.00000 00000 00000 0009D0/
329
330 V=ABS(X)
331 IF(V .LT. 8) THEN
332 H=R32*V**2-1
333 ALFA=H+H
334 B1=0
335 B2=0
336 DO 1 I = NA,0,-1
337 B0=A(I)+ALFA*B1-B2
338 B2=B1
339 1 B1=B0
340 H=SQRT(V)*(B0-H*B2)
341 ELSE
342 R=1/V
343 H=10*R-1
344 ALFA=H+H
345 B1=0
346 B2=0
347 DO 2 I = NC1,0,-1
348 B0=C1(I)+ALFA*B1-B2
349 B2=B1
350 2 B1=B0
351 S=B0-H*B2
352 B1=0
353 B2=0
354 DO 3 I = NC2,0,-1
355 B0=C2(I)+ALFA*B1-B2
356 B2=B1
357 3 B1=B0
358 H=C0-SQRT(R)*((B0-H*B2)*COS(V)-S*SIN(V))
359 END IF
360 IF(X .LT. 0) H=-H
361 DFRCOS=H
362 RETURN
363 END