Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /TRIGONOMETRY ROUTINES OS8 FORTRAN II LIBRARY |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / VERSION 5 HAS PATCH FOR IMPROVED ACCURACY AT LARGE ARGS | |
36 | / INSERTED NOP INSTRUCTIONS AT PATCH1 AND PATCH2/C. STOLZ | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | / | |
46 | / | |
47 | \f/ VERSION 6A | |
48 | / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS | |
49 | ENTRY SIN | |
50 | ENTRY COS | |
51 | ENTRY TAN | |
52 | ||
53 | QUAD, 0 /CONTAINS ONE LESS THAN THE QUADRANT OF THE ARGUMENT | |
54 | Y, BLOCK 3 /TEMPORARY STORAGE FOR ARG | |
55 | CPAGE 22 | |
56 | COEF, 5476 /-2.39E-8 CONSTANTS FOR SIN | |
57 | 3246 | |
58 | 2500 /2.7526E-6 | |
59 | 1565 | |
60 | 6134 | |
61 | 5170 /-1.98409E-4 | |
62 | 5646 | |
63 | 4006 | |
64 | 0026 /8.3333315E-3 | |
65 | 1724 | |
66 | 2104 | |
67 | 2065 /-1.6666667E-1 | |
68 | 5765 | |
69 | 2525 | |
70 | 2525 /1.0 | |
71 | 2014 | |
72 | 0000 | |
73 | 0000 | |
74 | CPAGE 3 | |
75 | HALFPI, 2016 /1.5707963 | |
76 | 2207 | |
77 | 7324 | |
78 | CPAGE 3 | |
79 | QTRPI, 2006 /7.8539815E-1 | |
80 | 2207 | |
81 | 7324 | |
82 | CPAGE 25 | |
83 | TOEF, 1724 /9.5168091E-3 | |
84 | 6766 | |
85 | 1440 /2.9005250E-3 | |
86 | 1705 | |
87 | 7413 | |
88 | 2741 /2.4565090E-2 | |
89 | 1736 | |
90 | 2236 | |
91 | 2720 /5.3374060E-2 | |
92 | 1746 | |
93 | 6517 | |
94 | 3023 /1.3339240E-1 | |
95 | 1764 | |
96 | 2114 | |
97 | 0042 /3.3333140E-1 | |
98 | 1775 | |
99 | 2525 | |
100 | 1517 /1.0 | |
101 | 2014 | |
102 | 0000 | |
103 | 0000 | |
104 | TAN, BLOCK 1 | |
105 | 6 | |
106 | DCA QUAD /SET QUADRANT OFFSET SWITCH | |
107 | TAD I TAN /PICK-UP CDF | |
108 | DCA TARG | |
109 | INC TAN# /POINT TO NEXT WORD | |
110 | TAD I TAN /PICK-UP ADDRESS | |
111 | DCA TARG# | |
112 | INC TAN# /POINT TO RETURN | |
113 | CALL 1,FAD /GET ARG IN FP-ACC | |
114 | TARG, ARG 0 | |
115 | BAC, TAD ACH /LOOK AT HIGH ORDER WORD | |
116 | SPA CLA /IF NEGATIVE | |
117 | JMP OVT /GO OM | |
118 | CALL 1,FSB /OTHERWISE SUBTRACT | |
119 | ARG QTRPI /PI/2 | |
120 | ISZ QUAD /AND INCREMENT QUADRANT COUNTER | |
121 | PATCH1, NOP /ALLOW FOR SKIP | |
122 | JMP BAC /UNTIL ARG IS NEGATIVE | |
123 | OVT, CALL 1,FAD /ADD PI/2 TO ARG UNTIL IT IS IN | |
124 | ARG QTRPI /THE FIRST QUADRANT | |
125 | CLA CMA | |
126 | TAD QUAD /BUT KEEP TRACK OF WHICH QUADRANT IT WAS IN | |
127 | DCA QUAD | |
128 | TAD ACH /GET HI ORDER WORD | |
129 | SPA CLA | |
130 | JMP OVT /IF NEGATIVE REPEAT | |
131 | TAD QUAD /FIND OUT WHAT QUAD IT WAS IN | |
132 | RTR | |
133 | SMA CLA | |
134 | JMP OM | |
135 | CALL 0,CHS /SUBTRACT FROM PI/2 IF QUAD 2 OR 4 | |
136 | CALL 1,FAD | |
137 | ARG QTRPI | |
138 | OM, TAD (7 /USE A 7 TERM SERIES | |
139 | CPAGE 3 | |
140 | JMS POL | |
141 | TOEF /ADRESS OF COEFICIENTS FOR THE SERIES | |
142 | CLA CMA | |
143 | TAD QUAD | |
144 | RTR | |
145 | SZL CLA | |
146 | JMP OM3 | |
147 | CALL 1,STO | |
148 | ARG Y | |
149 | TAD (2014 | |
150 | DCA ACH | |
151 | CALL 1,FDV | |
152 | ARG Y | |
153 | OM3, RETRN TAN | |
154 | / INTERNAL SUBROUTINE POL | |
155 | / | |
156 | / COMPUTES N TERMS OF POLYNOMIAL | |
157 | / N IN AC ... X IN FLOATING AC | |
158 | / COEFFICIENTS START IN LOCATION WHOSE ADDRESS FOLLOWS JMS TO POL | |
159 | / | |
160 | POL2, BLOCK 1 | |
161 | POL, BLOCK 1 | |
162 | CIA | |
163 | DCA POL2 | |
164 | CALL 1,STO /STORE ADJUSTED ARGUMENT | |
165 | ARG Y /IN A TEMPORARY | |
166 | CALL 1,FAD | |
167 | ARG Y /RESTORE FP AC | |
168 | CALL 1,FMP | |
169 | ARG Y /SQUARE IT | |
170 | CALL 1,STO | |
171 | ARG X | |
172 | TAD I POL | |
173 | INC POL | |
174 | ARG2, DCA ARG1# | |
175 | CALL 1,FAD | |
176 | ARG1, ARG COEF / ADDRESS STORED HERE | |
177 | ISZ POL2 | |
178 | JMP POL1 | |
179 | CALL 1,FMP /MULTIPLY AGAIN TO COMPLETE SERIES | |
180 | ARG Y | |
181 | TAD QUAD | |
182 | RTR | |
183 | SNL CLA /FIND OUT WHICH QUADRANT | |
184 | JMP POLEX | |
185 | CALL 0,CHS /IF IN QUADRANT 3 OR 4 SET NEGATIVE | |
186 | POLEX, JMP I POL | |
187 | POL1, CALL 1,FMP | |
188 | ARG X | |
189 | TAD ARG1# | |
190 | TAD (3 | |
191 | JMP ARG2 | |
192 | / | |
193 | X, BLOCK 3 /TEMPORARY FOR POL | |
194 | / | |
195 | / | |
196 | / 8K FORTRAN TRIGNOMETRY ROUTINES | |
197 | / | |
198 | / | |
199 | COS, BLOCK 1 | |
200 | 6 | |
201 | TAD COS | |
202 | DCA SIN | |
203 | TAD COS# | |
204 | DCA SIN# /IT NOW APPEARS THAT SIN WAS CALLED | |
205 | CLA IAC /WITH QUADRANT OFFSET BY ONE | |
206 | JMP COSE | |
207 | SIN, BLOCK 1 | |
208 | 6 | |
209 | COSE, DCA QUAD /SET QUADRANT OFFSET SWITCH | |
210 | TAD I SIN /PICK-UP CDF | |
211 | DCA SARG | |
212 | INC SIN# /POINT TO NEXT WORD | |
213 | TAD I SIN /PICK-UP ADDRESS | |
214 | DCA SARG# | |
215 | INC SIN# /POINT TO RETURN | |
216 | CALL 1,FAD /GET ARG IN FP-ACC | |
217 | SARG, ARG 0 | |
218 | BACK, TAD ACH /LOOK AT HIGH ORDER WORD | |
219 | SPA CLA /IF NEGATIVE | |
220 | JMP OVR /GO ON | |
221 | CALL 1,FSB /OTHERWISE SUBTRACT | |
222 | ARG HALFPI /PI/2 | |
223 | ISZ QUAD /AND INCREMENT QUADRANT COUNTER | |
224 | PATCH2, NOP /ALLOW FOR SKIP | |
225 | JMP BACK /UNTIL ARG IS NEGATIVE | |
226 | OVR, CALL 1,FAD /ADD PI/2 TO ARG UNTIL IT IS IN | |
227 | ARG HALFPI /THE FIRST QUADRANT | |
228 | CLA CMA | |
229 | TAD QUAD /BUT KEEP TRACK OF WHICH QUADRANT IT WAS IN | |
230 | DCA QUAD | |
231 | TAD ACH /GET HI ORDER WORD | |
232 | SPA CLA | |
233 | JMP OVR /IF NEGATIVE REPEAT | |
234 | TAD QUAD /FIND OUT WHAT QUAD IT WAS IN | |
235 | RTR | |
236 | SMA CLA | |
237 | JMP ON | |
238 | CALL 0,CHS /SUBTRACT FROM PI/2 IF QUAD 2 OR 4 | |
239 | CALL 1,FAD | |
240 | ARG HALFPI | |
241 | ON, TAD (6 /USE A 6 TERM SERIES | |
242 | CPAGE 3 | |
243 | JMS POL | |
244 | COEF /ADRESS OF COEFICIENTS FOR THE SERIES | |
245 | RETRN SIN | |
246 | END | |
247 | \f |