]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/mathlib/gen/c/sinint64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / sinint64.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:02:06  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10 #if !defined(CERNLIB_DOUBLE)
11       FUNCTION RSININ(X)
12 #endif
13 #if defined(CERNLIB_DOUBLE)
14       FUNCTION DSININ(X)
15 #endif
16 #include "gen/imp64.inc"
17       CHARACTER NAME*(*)
18       CHARACTER*80 ERRTXT
19 #if !defined(CERNLIB_DOUBLE)
20       PARAMETER (NAME = 'RCOSIN')
21 #endif
22 #if defined(CERNLIB_DOUBLE)
23       PARAMETER (NAME = 'RCOSIN/DCOSIN')
24 #endif
25       DIMENSION S(0:15),C(0:15),P(0:28),Q(0:24)
26
27       PARAMETER (Z1 = 1, R8 = Z1/8, R32 = Z1/32)
28
29       PARAMETER (PI = 3.14159 26535 89793 24D0)
30       PARAMETER (CE = 0.57721 56649 01532 86D0)
31       PARAMETER (PIH = PI/2)
32
33       DATA S( 0) /+1.95222 09759 53071 08D0/
34       DATA S( 1) /-0.68840 42321 25715 44D0/
35       DATA S( 2) /+0.45518 55132 25584 84D0/
36       DATA S( 3) /-0.18045 71236 83877 85D0/
37       DATA S( 4) /+0.04104 22133 75859 24D0/
38       DATA S( 5) /-0.00595 86169 55588 85D0/
39       DATA S( 6) /+0.00060 01427 41414 43D0/
40       DATA S( 7) /-0.00004 44708 32910 75D0/
41       DATA S( 8) /+0.00000 25300 78230 75D0/
42       DATA S( 9) /-0.00000 01141 30759 30D0/
43       DATA S(10) /+0.00000 00041 85783 94D0/
44       DATA S(11) /-0.00000 00001 27347 06D0/
45       DATA S(12) /+0.00000 00000 03267 36D0/
46       DATA S(13) /-0.00000 00000 00071 68D0/
47       DATA S(14) /+0.00000 00000 00001 36D0/
48       DATA S(15) /-0.00000 00000 00000 02D0/
49
50       DATA C( 0) /+1.94054 91464 83554 93D0/
51       DATA C( 1) /+0.94134 09132 86521 34D0/
52       DATA C( 2) /-0.57984 50342 92992 76D0/
53       DATA C( 3) /+0.30915 72011 15927 13D0/
54       DATA C( 4) /-0.09161 01792 20771 34D0/
55       DATA C( 5) /+0.01644 37407 51546 25D0/
56       DATA C( 6) /-0.00197 13091 95216 41D0/
57       DATA C( 7) /+0.00016 92538 85083 50D0/
58       DATA C( 8) /-0.00001 09393 29573 11D0/
59       DATA C( 9) /+0.00000 05522 38574 84D0/
60       DATA C(10) /-0.00000 00223 99493 31D0/
61       DATA C(11) /+0.00000 00007 46533 25D0/
62       DATA C(12) /-0.00000 00000 20818 33D0/
63       DATA C(13) /+0.00000 00000 00493 12D0/
64       DATA C(14) /-0.00000 00000 00010 05D0/
65       DATA C(15) /+0.00000 00000 00000 18D0/
66
67       DATA P( 0) /+0.96074 78397 52035 96D0/
68       DATA P( 1) /-0.03711 38962 12398 06D0/
69       DATA P( 2) /+0.00194 14398 88991 90D0/
70       DATA P( 3) /-0.00017 16598 84251 47D0/
71       DATA P( 4) /+0.00002 11263 77532 31D0/
72       DATA P( 5) /-0.00000 32716 32567 12D0/
73       DATA P( 6) /+0.00000 06006 92116 15D0/
74       DATA P( 7) /-0.00000 01258 67944 03D0/
75       DATA P( 8) /+0.00000 00293 25634 58D0/
76       DATA P( 9) /-0.00000 00074 56959 21D0/
77       DATA P(10) /+0.00000 00020 41054 78D0/
78       DATA P(11) /-0.00000 00005 95022 30D0/
79       DATA P(12) /+0.00000 00001 83229 67D0/
80       DATA P(13) /-0.00000 00000 59205 06D0/
81       DATA P(14) /+0.00000 00000 19965 17D0/
82       DATA P(15) /-0.00000 00000 06995 11D0/
83       DATA P(16) /+0.00000 00000 02536 86D0/
84       DATA P(17) /-0.00000 00000 00949 29D0/
85       DATA P(18) /+0.00000 00000 00365 52D0/
86       DATA P(19) /-0.00000 00000 00144 49D0/
87       DATA P(20) /+0.00000 00000 00058 51D0/
88       DATA P(21) /-0.00000 00000 00024 23D0/
89       DATA P(22) /+0.00000 00000 00010 25D0/
90       DATA P(23) /-0.00000 00000 00004 42D0/
91       DATA P(24) /+0.00000 00000 00001 94D0/
92       DATA P(25) /-0.00000 00000 00000 87D0/
93       DATA P(26) /+0.00000 00000 00000 39D0/
94       DATA P(27) /-0.00000 00000 00000 18D0/
95       DATA P(28) /+0.00000 00000 00000 08D0/
96
97       DATA Q( 0) /+0.98604 06569 62382 60D0/
98       DATA Q( 1) /-0.01347 17382 08295 21D0/
99       DATA Q( 2) /+0.00045 32928 41165 23D0/
100       DATA Q( 3) /-0.00003 06728 86516 55D0/
101       DATA Q( 4) /+0.00000 31319 91976 01D0/
102       DATA Q( 5) /-0.00000 04211 01964 96D0/
103       DATA Q( 6) /+0.00000 00690 72448 30D0/
104       DATA Q( 7) /-0.00000 00131 83212 90D0/
105       DATA Q( 8) /+0.00000 00028 36974 33D0/
106       DATA Q( 9) /-0.00000 00006 73292 34D0/
107       DATA Q(10) /+0.00000 00001 73396 87D0/
108       DATA Q(11) /-0.00000 00000 47869 39D0/
109       DATA Q(12) /+0.00000 00000 14032 35D0/
110       DATA Q(13) /-0.00000 00000 04334 96D0/
111       DATA Q(14) /+0.00000 00000 01402 73D0/
112       DATA Q(15) /-0.00000 00000 00473 06D0/
113       DATA Q(16) /+0.00000 00000 00165 58D0/
114       DATA Q(17) /-0.00000 00000 00059 94D0/
115       DATA Q(18) /+0.00000 00000 00022 37D0/
116       DATA Q(19) /-0.00000 00000 00008 59D0/
117       DATA Q(20) /+0.00000 00000 00003 38D0/
118       DATA Q(21) /-0.00000 00000 00001 36D0/
119       DATA Q(22) /+0.00000 00000 00000 56D0/
120       DATA Q(23) /-0.00000 00000 00000 24D0/
121       DATA Q(24) /+0.00000 00000 00000 10D0/
122
123       IF(ABS(X) .LE. 8) THEN
124        Y=R8*X
125        H=2*Y**2-1
126        ALFA=H+H
127        B1=0
128        B2=0
129        DO 1 I = 15,0,-1
130        B0=S(I)+ALFA*B1-B2
131        B2=B1
132     1  B1=B0
133        H=Y*(B0-B2)
134       ELSE
135        R=1/X
136        H=128*R**2-1
137        ALFA=H+H
138        B1=0
139        B2=0
140        DO 2 I = 28,0,-1
141        B0=P(I)+ALFA*B1-B2
142        B2=B1
143     2  B1=B0
144        PP=B0-H*B2
145        B1=0
146        B2=0
147        DO 3 I = 24,0,-1
148        B0=Q(I)+ALFA*B1-B2
149        B2=B1
150     3  B1=B0
151        H=SIGN(PIH,X)-R*(R*PP*SIN(X)+(B0-H*B2)*COS(X))
152       END IF
153       GO TO 9
154
155 #if !defined(CERNLIB_DOUBLE)
156       ENTRY RCOSIN(X)
157 #endif
158 #if defined(CERNLIB_DOUBLE)
159       ENTRY DCOSIN(X)
160 #endif
161
162       IF(X .EQ. 0) THEN
163        H=0
164        CALL MTLPRT(NAME,'C336.1','ARGUMENT X = 0')
165       ELSEIF(ABS(X) .LE. 8) THEN
166        H=R32*X**2-1
167        ALFA=H+H
168        B1=0
169        B2=0
170        DO 4 I = 15,0,-1
171        B0=C(I)+ALFA*B1-B2
172        B2=B1
173     4  B1=B0
174        H=CE+LOG(ABS(X))-B0+H*B2
175       ELSE
176        R=1/X
177        H=128*R**2-1
178        ALFA=H+H
179        B1=0
180        B2=0
181        DO 5 I = 28,0,-1
182        B0=P(I)+ALFA*B1-B2
183        B2=B1
184     5  B1=B0
185        PP=B0-H*B2
186        B1=0
187        B2=0
188        DO 6 I = 24,0,-1
189        B0=Q(I)+ALFA*B1-B2
190        B2=B1
191     6  B1=B0
192        H=R*((B0-H*B2)*SIN(X)-R*PP*COS(X))
193       END IF
194 #if !defined(CERNLIB_DOUBLE)
195     9 RSININ=H
196 #endif
197 #if defined(CERNLIB_DOUBLE)
198     9 DSININ=H
199 #endif
200       RETURN
201       END