This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / atani64.F
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