]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/mathlib/gen/c/dawson64.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / dawson64.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:02:07  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10 #if !defined(CERNLIB_DOUBLE)
11       FUNCTION RDAWSN(X)
12 #endif
13 #if defined(CERNLIB_DOUBLE)
14       FUNCTION DDAWSN(X)
15 #include "gen/imp64.inc"
16 #endif
17
18       DIMENSION P1(0:8),Q1(0:8)
19       DIMENSION A1(0:7),B1(0:6),A2(0:7),B2(0:6),A3(0:5),B3(0:4)
20
21       PARAMETER (Z1 = 1, HF = Z1/2, C1 = 2+HF, C2 = 3+HF)
22
23       DATA P1
24      1/+1.73971 38358 72305 8D+8, -2.35903 54309 49078 4D+7,
25      2 +7.94595 11256 26974 7D+6, -4.49408 95997 95344 8D+5,
26      3 +6.26435 22480 53304 3D+4, -1.64294 23044 87861 4D+3,
27      4 +1.10415 15859 64097 2D+2, -1.23806 01126 69044 4D+0,
28      5 +1.70141 56251 64813 2D-2/
29       DATA Q1
30      1/+1.73971 38358 72305 8D+8, +9.23905 68081 99581 7D+7,
31      2 +2.31472 94223 70433 8D+7, +3.59959 82595 90670 4D+6,
32      3 +3.83498 04512 71685 6D+5, +2.90022 12938 95164 3D+4,
33      4 +1.54480 44953 25198 3D+3, +5.42357 27435 06117 3D+1,
34      5 +1.00000 00000 00000 0D+0/
35       DATA A1
36      1/+5.00236 89608 86678 8D-1, -5.97678 08682 34888 6D+0,
37      2 +1.52644 09962 36985 9D+1, -8.89106 47974 78123 3D+0,
38      3 -7.57931 91808 93692 7D-2, -4.00000 89364 35497 2D+1,
39      4 +2.93365 74739 54485 3D+1, -1.50695 65118 71605 5D+0/
40       DATA A2
41      1/+4.99999 90270 50535 9D-1, -1.49838 04203 66907 2D+0,
42      2 -4.98544 80298 66076 7D+0, +5.06460 15374 22307 7D+0,
43      3 -1.50507 70349 66919 6D+1, -9.16804 87981 35517 1D+0,
44      4 -2.66167 67489 63992 8D+1, +4.76405 64527 32287 8D+0/
45       DATA A3
46      1/+5.00000 00000 87358 0D-1, -2.50000 27830 30495 0D+0,
47      2 -4.51057 82777 83269 5D+0, -7.82636 28103 36344 1D+0,
48      3 -4.05239 81738 80339 4D+1, +4.12716 33274 69802 1D+0/
49       DATA B1
50      1/+2.26064 66607 43091 6D-1, +1.15840 29255 18881 3D+2,
51      2 +7.29177 55641 55315 0D+1, +1.12461 66202 45754 3D+2,
52      3 +7.21193 21760 02290 6D+0, +1.24486 78826 22516 2D+3,
53      4 -6.73106 06974 48133 1D-1/
54       DATA B2
55      1/+2.50011 45961 18389 4D-1, -1.48715 81178 71947 5D+0,
56      2 +3.30707 72467 61143 7D+1, +1.46515 16778 31092 9D+2,
57      3 +7.51701 27774 40669 3D+1, +2.56105 72234 22263 5D+1,
58      4 +2.87776 12297 31873 6D+2/
59       DATA B3
60      1/+7.49999 99263 58122 3D-1, -2.49963 00606 78980 2D+0,
61      2 -6.58834 68001 31477 4D+0, -6.89636 11433 76130 9D-1,
62      3 +5.20416 17289 69394 6D+2/
63
64       V=ABS(X)
65       Y=V**2
66       IF(V .LT. C1) THEN
67        P=P1(8)
68        Q=Q1(8)
69        DO 1 I = 7,0,-1
70        P=Y*P+P1(I)
71     1  Q=Y*Q+Q1(I)
72        H=X*P/Q
73       ELSE IF(V .LT. C2) THEN
74        P=Y+A1(7)
75        DO 2 I = 6,1,-1
76     2  P=Y+A1(I)+B1(I)/P
77        H=(A1(0)+B1(0)/P)/X
78       ELSE IF(V .LT. 5) THEN
79        P=Y+A2(7)
80        DO 3 I = 6,1,-1
81     3  P=Y+A2(I)+B2(I)/P
82        H=(A2(0)+B2(0)/P)/X
83       ELSE
84        P=Y+A3(5)
85        DO 4 I = 4,1,-1
86     4  P=Y+A3(I)+B3(I)/P
87        H=(HF+HF*(A3(0)+B3(0)/P)/Y)/X
88       END IF
89 #if !defined(CERNLIB_DOUBLE)
90       RDAWSN=H
91 #endif
92 #if defined(CERNLIB_DOUBLE)
93       DDAWSN=H
94 #endif
95       RETURN
96       END