| 1 | / |
| 2 | / |
| 3 | / A S I N |
| 4 | / - - - - |
| 5 | / |
| 6 | /SUBROUTINE ASIN(X) |
| 7 | / |
| 8 | / VERSION 5A 4-27-77 PT |
| 9 | / |
| 10 | SECT ASIN |
| 11 | JA #ASIN |
| 12 | ASINEQ, FLDA FPI2AS /RETURN PI OVER TWO. |
| 13 | FMUL ASIN8 /TIMES ARG. |
| 14 | JA ASNRTN |
| 15 | TEXT +ASIN + |
| 16 | ASINXR, SETX XRASIN |
| 17 | SETB BPASIN |
| 18 | BPASIN, FNOP |
| 19 | 0 |
| 20 | 0 |
| 21 | XRASIN, F 0.0 |
| 22 | ASIN8, F 0.0 |
| 23 | ASIN7, F 0.0 |
| 24 | F1ASIN, F 1. |
| 25 | FPI2AS, 1 /PI OVER 2 |
| 26 | 3110 |
| 27 | 3755 |
| 28 | ORG 10*3+BPASIN |
| 29 | FNOP |
| 30 | JA ASINXR |
| 31 | 0 |
| 32 | ASNRTN, JA . |
| 33 | BASE 0 |
| 34 | #ASIN, STARTD |
| 35 | FLDA 10*3 |
| 36 | FSTA ASNRTN |
| 37 | FLDA 0 |
| 38 | SETX XRASIN |
| 39 | SETB BPASIN |
| 40 | BASE BPASIN |
| 41 | LDX 1,1 |
| 42 | FSTA BPASIN |
| 43 | FLDA% BPASIN,1 /ADDR OF X |
| 44 | FSTA BPASIN |
| 45 | STARTF |
| 46 | FLDA% BPASIN /GET X |
| 47 | FSTA ASIN8 /STORE ARG AWAY. |
| 48 | JGE .+3 /TAKE ABSOLUTE VALUE. |
| 49 | FNEG |
| 50 | FSUB F1ASIN /SEE IF >1 |
| 51 | JLE ASINOK /CONTINUE PROCESS. |
| 52 | EXTERN #ARGER |
| 53 | TRAP4 #ARGER /TRAP OUT. |
| 54 | JA ASNRTN /RETURN. |
| 55 | ASINOK, FLDA ASIN8 /X USES STRAIGHT TRIG RELATION. |
| 56 | FNEG |
| 57 | FMUL ASIN8 /-X^2 |
| 58 | FADD F1ASIN /1.-X^2 |
| 59 | JEQ ASINEQ /IF 0,FAC=PI OVER 2 |
| 60 | FSTA ASIN7 |
| 61 | EXTERN SQRT |
| 62 | JSR SQRT |
| 63 | JA .+4 |
| 64 | JA ASIN7 |
| 65 | FSTA ASIN7 /SQRT(1.-X^2) |
| 66 | FLDA ASIN8 |
| 67 | FDIV ASIN7 /X/SQRT(1.X^2) |
| 68 | FSTA ASIN7 |
| 69 | EXTERN ATAN |
| 70 | JSR ATAN /TAKE THE ARCTANGENT. |
| 71 | JA ASNRTN |
| 72 | JA ASIN7 |
| 73 | \f |