]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:02 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | #if !defined(CERNLIB_DOUBLE) | |
11 | FUNCTION RFRSIN(X) | |
12 | #endif | |
13 | #if defined(CERNLIB_DOUBLE) | |
14 | FUNCTION DFRSIN(X) | |
15 | #include "gen/imp64.inc" | |
16 | #endif | |
17 | ||
18 | DIMENSION A(0:16),B(0:15),C1(0:25),C2(0:28) | |
19 | ||
20 | PARAMETER (Z1 = 1, R8 = Z1/8, R32 = Z1/32) | |
21 | ||
22 | DATA C0 /1.25331 41373 15500 3D0/ | |
23 | ||
24 | DATA NA,NB,NC1,NC2 /16,15,25,28/ | |
25 | ||
26 | DATA A( 0) / 0.76435 13866 41860 002D0/ | |
27 | DATA A( 1) /-0.43135 54754 76601 793D0/ | |
28 | DATA A( 2) / 0.43288 19997 97266 531D0/ | |
29 | DATA A( 3) /-0.26973 31033 83871 110D0/ | |
30 | DATA A( 4) / 0.08416 04532 08769 354D0/ | |
31 | DATA A( 5) /-0.01546 52448 44613 820D0/ | |
32 | DATA A( 6) / 0.00187 85542 34398 220D0/ | |
33 | DATA A( 7) /-0.00016 26497 76188 875D0/ | |
34 | DATA A( 8) / 0.00001 05739 76563 833D0/ | |
35 | DATA A( 9) /-0.00000 05360 93398 892D0/ | |
36 | DATA A(10) / 0.00000 00218 16584 549D0/ | |
37 | DATA A(11) /-0.00000 00007 29016 212D0/ | |
38 | DATA A(12) / 0.00000 00000 20373 325D0/ | |
39 | DATA A(13) /-0.00000 00000 00483 440D0/ | |
40 | DATA A(14) / 0.00000 00000 00009 865D0/ | |
41 | DATA A(15) /-0.00000 00000 00000 175D0/ | |
42 | DATA A(16) / 0.00000 00000 00000 003D0/ | |
43 | ||
44 | DATA B( 0) / 0.63041 40431 45705 392D0/ | |
45 | DATA B( 1) /-0.42344 51140 57053 335D0/ | |
46 | DATA B( 2) / 0.37617 17264 33436 566D0/ | |
47 | DATA B( 3) /-0.16249 48915 45095 674D0/ | |
48 | DATA B( 4) / 0.03822 25577 86330 087D0/ | |
49 | DATA B( 5) /-0.00564 56347 71321 909D0/ | |
50 | DATA B( 6) / 0.00057 45495 19768 974D0/ | |
51 | DATA B( 7) /-0.00004 28707 15321 020D0/ | |
52 | DATA B( 8) / 0.00000 24512 07499 233D0/ | |
53 | DATA B( 9) /-0.00000 01109 88418 409D0/ | |
54 | DATA B(10) / 0.00000 00040 82497 317D0/ | |
55 | DATA B(11) /-0.00000 00001 24498 302D0/ | |
56 | DATA B(12) / 0.00000 00000 03200 484D0/ | |
57 | DATA B(13) /-0.00000 00000 00070 324D0/ | |
58 | DATA B(14) / 0.00000 00000 00001 336D0/ | |
59 | DATA B(15) /-0.00000 00000 00000 022D0/ | |
60 | ||
61 | DATA C1( 0) / 0.99056 04793 73497 549D0/ | |
62 | DATA C1( 1) /-0.01218 35098 31478 997D0/ | |
63 | DATA C1( 2) /-0.00248 27428 23113 060D0/ | |
64 | DATA C1( 3) / 0.00026 60949 52647 247D0/ | |
65 | DATA C1( 4) /-0.00000 10790 68987 406D0/ | |
66 | DATA C1( 5) /-0.00000 48836 81753 933D0/ | |
67 | DATA C1( 6) / 0.00000 09990 55266 368D0/ | |
68 | DATA C1( 7) /-0.00000 00750 92717 372D0/ | |
69 | DATA C1( 8) /-0.00000 00190 79487 573D0/ | |
70 | DATA C1( 9) / 0.00000 00090 90797 293D0/ | |
71 | DATA C1(10) /-0.00000 00019 66236 033D0/ | |
72 | DATA C1(11) / 0.00000 00001 64772 911D0/ | |
73 | DATA C1(12) / 0.00000 00000 63079 714D0/ | |
74 | DATA C1(13) /-0.00000 00000 36432 219D0/ | |
75 | DATA C1(14) / 0.00000 00000 10536 930D0/ | |
76 | DATA C1(15) /-0.00000 00000 01716 438D0/ | |
77 | DATA C1(16) /-0.00000 00000 00107 124D0/ | |
78 | DATA C1(17) / 0.00000 00000 00204 099D0/ | |
79 | DATA C1(18) /-0.00000 00000 00090 064D0/ | |
80 | DATA C1(19) / 0.00000 00000 00025 506D0/ | |
81 | DATA C1(20) /-0.00000 00000 00004 036D0/ | |
82 | DATA C1(21) /-0.00000 00000 00000 570D0/ | |
83 | DATA C1(22) / 0.00000 00000 00000 762D0/ | |
84 | DATA C1(23) /-0.00000 00000 00000 363D0/ | |
85 | DATA C1(24) / 0.00000 00000 00000 118D0/ | |
86 | DATA C1(25) /-0.00000 00000 00000 025D0/ | |
87 | ||
88 | DATA C2( 0) / 0.04655 77987 37516 4561D0/ | |
89 | DATA C2( 1) / 0.04499 21302 01239 4140D0/ | |
90 | DATA C2( 2) /-0.00175 42871 39651 4532D0/ | |
91 | DATA C2( 3) /-0.00014 65340 02581 0678D0/ | |
92 | DATA C2( 4) / 0.00003 91330 40863 0159D0/ | |
93 | DATA C2( 5) /-0.00000 34932 28659 7731D0/ | |
94 | DATA C2( 6) /-0.00000 03153 53003 2345D0/ | |
95 | DATA C2( 7) / 0.00000 01876 58200 8529D0/ | |
96 | DATA C2( 8) /-0.00000 00377 55280 4930D0/ | |
97 | DATA C2( 9) / 0.00000 00026 65516 5010D0/ | |
98 | DATA C2(10) / 0.00000 00010 88144 8122D0/ | |
99 | DATA C2(11) /-0.00000 00005 35500 7671D0/ | |
100 | DATA C2(12) / 0.00000 00001 31576 5447D0/ | |
101 | DATA C2(13) /-0.00000 00000 15286 0881D0/ | |
102 | DATA C2(14) /-0.00000 00000 03394 7646D0/ | |
103 | DATA C2(15) / 0.00000 00000 02702 0267D0/ | |
104 | DATA C2(16) /-0.00000 00000 00946 3142D0/ | |
105 | DATA C2(17) / 0.00000 00000 00207 1565D0/ | |
106 | DATA C2(18) /-0.00000 00000 00012 6931D0/ | |
107 | DATA C2(19) /-0.00000 00000 00013 9756D0/ | |
108 | DATA C2(20) / 0.00000 00000 00008 5929D0/ | |
109 | DATA C2(21) /-0.00000 00000 00003 1070D0/ | |
110 | DATA C2(22) / 0.00000 00000 00000 7515D0/ | |
111 | DATA C2(23) /-0.00000 00000 00000 0648D0/ | |
112 | DATA C2(24) /-0.00000 00000 00000 0522D0/ | |
113 | DATA C2(25) / 0.00000 00000 00000 0386D0/ | |
114 | DATA C2(26) /-0.00000 00000 00000 0165D0/ | |
115 | DATA C2(27) / 0.00000 00000 00000 0050D0/ | |
116 | DATA C2(28) /-0.00000 00000 00000 0009D0/ | |
117 | ||
118 | V=ABS(X) | |
119 | IF(V .LT. 8) THEN | |
120 | Y=R8*V | |
121 | H=2*Y**2-1 | |
122 | ALFA=H+H | |
123 | B1=0 | |
124 | B2=0 | |
125 | DO 4 I = NB,0,-1 | |
126 | B0=B(I)+ALFA*B1-B2 | |
127 | B2=B1 | |
128 | 4 B1=B0 | |
129 | H=SQRT(V)*Y*(B0-B2) | |
130 | ELSE | |
131 | R=1/V | |
132 | H=10*R-1 | |
133 | ALFA=H+H | |
134 | B1=0 | |
135 | B2=0 | |
136 | DO 5 I = NC1,0,-1 | |
137 | B0=C1(I)+ALFA*B1-B2 | |
138 | B2=B1 | |
139 | 5 B1=B0 | |
140 | S=B0-H*B2 | |
141 | B1=0 | |
142 | B2=0 | |
143 | DO 6 I = NC2,0,-1 | |
144 | B0=C2(I)+ALFA*B1-B2 | |
145 | B2=B1 | |
146 | 6 B1=B0 | |
147 | H=C0-SQRT(R)*(S*COS(V)+(B0-H*B2)*SIN(V)) | |
148 | END IF | |
149 | IF(X .LT. 0) H=-H | |
150 | GO TO 9 | |
151 | ||
152 | #if !defined(CERNLIB_DOUBLE) | |
153 | ENTRY RFRCOS(X) | |
154 | #endif | |
155 | #if defined(CERNLIB_DOUBLE) | |
156 | ENTRY DFRCOS(X) | |
157 | #endif | |
158 | V=ABS(X) | |
159 | IF(V .LT. 8) THEN | |
160 | H=R32*V**2-1 | |
161 | ALFA=H+H | |
162 | B1=0 | |
163 | B2=0 | |
164 | DO 1 I = NA,0,-1 | |
165 | B0=A(I)+ALFA*B1-B2 | |
166 | B2=B1 | |
167 | 1 B1=B0 | |
168 | H=SQRT(V)*(B0-H*B2) | |
169 | ELSE | |
170 | R=1/V | |
171 | H=10*R-1 | |
172 | ALFA=H+H | |
173 | B1=0 | |
174 | B2=0 | |
175 | DO 2 I = NC1,0,-1 | |
176 | B0=C1(I)+ALFA*B1-B2 | |
177 | B2=B1 | |
178 | 2 B1=B0 | |
179 | S=B0-H*B2 | |
180 | B1=0 | |
181 | B2=0 | |
182 | DO 3 I = NC2,0,-1 | |
183 | B0=C2(I)+ALFA*B1-B2 | |
184 | B2=B1 | |
185 | 3 B1=B0 | |
186 | H=C0-SQRT(R)*((B0-H*B2)*COS(V)-S*SIN(V)) | |
187 | END IF | |
188 | IF(X .LT. 0) H=-H | |
189 | #if !defined(CERNLIB_DOUBLE) | |
190 | 9 RFRSIN=H | |
191 | #endif | |
192 | #if defined(CERNLIB_DOUBLE) | |
193 | 9 DFRSIN=H | |
194 | #endif | |
195 | RETURN | |
196 | END |