| 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 |