]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:03 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | #if !defined(CERNLIB_DOUBLE) | |
11 | FUNCTION ATANI(X) | |
12 | #endif | |
13 | #if defined(CERNLIB_DOUBLE) | |
14 | FUNCTION DATANI(X) | |
15 | #include "gen/imp64.inc" | |
16 | #endif | |
17 | DIMENSION C(0:18) | |
18 | ||
19 | PARAMETER (PI = 3.14159 26535 89793 24D0, PIH = PI/2) | |
20 | ||
21 | DATA C( 0) / 0.93432 00492 92895 95D0/ | |
22 | DATA C( 1) /-0.01950 47944 34351 90D0/ | |
23 | DATA C( 2) / 0.00125 17037 06300 59D0/ | |
24 | DATA C( 3) /-0.00011 19241 41205 64D0/ | |
25 | DATA C( 4) / 0.00001 17754 53855 07D0/ | |
26 | DATA C( 5) /-0.00000 13652 83304 87D0/ | |
27 | DATA C( 6) / 0.00000 01688 82892 74D0/ | |
28 | DATA C( 7) /-0.00000 00218 80246 51D0/ | |
29 | DATA C( 8) / 0.00000 00029 35063 61D0/ | |
30 | DATA C( 9) /-0.00000 00004 04523 41D0/ | |
31 | DATA C(10) / 0.00000 00000 56976 00D0/ | |
32 | DATA C(11) /-0.00000 00000 08168 83D0/ | |
33 | DATA C(12) / 0.00000 00000 01188 69D0/ | |
34 | DATA C(13) /-0.00000 00000 00175 16D0/ | |
35 | DATA C(14) / 0.00000 00000 00026 09D0/ | |
36 | DATA C(15) /-0.00000 00000 00003 92D0/ | |
37 | DATA C(16) / 0.00000 00000 00000 59D0/ | |
38 | DATA C(17) /-0.00000 00000 00000 09D0/ | |
39 | DATA C(18) / 0.00000 00000 00000 01D0/ | |
40 | ||
41 | V=ABS(X) | |
42 | IF(V .LE. 1) THEN | |
43 | R=0 | |
44 | Y=V | |
45 | ELSE | |
46 | R=PIH*LOG(V) | |
47 | Y=1/V | |
48 | END IF | |
49 | H=2*Y**2-1 | |
50 | ALFA=H+H | |
51 | B1=0 | |
52 | B2=0 | |
53 | DO 1 I = 18,0,-1 | |
54 | B0=C(I)+ALFA*B1-B2 | |
55 | B2=B1 | |
56 | 1 B1=B0 | |
57 | R=R+Y*(B0-B2) | |
58 | IF(X .LT. 0) R=-R | |
59 | #if !defined(CERNLIB_DOUBLE) | |
60 | ATANI=R | |
61 | #endif | |
62 | #if defined(CERNLIB_DOUBLE) | |
63 | DATANI=R | |
64 | #endif | |
65 | RETURN | |
66 | END |