File: ASIN.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/R=ASIN(R) SINGLE PREC. ARC-SINE / / / VERSION 40A 27-MAY-80 WVDM / / SECT ASIN JA #ASIN EXTERN #ARGER ASINER, TRAP4 #ARGER /TRAP OUT. TEXT +ASIN + ASINXR, SETX XRASIN SETB BPASIN BPASIN, FNOP 0 0 XRASIN, F 0.0 ASIN8, F 0.0 ASIN7, F 0.0 F1ASIN, F 1. FPI2AS, 1 /PI OVER 2 3110 3755 ORG 10*3+BPASIN FNOP JA ASINXR 0 ASNRTN, JA . / BASE 0 #ASIN, STARTD FLDA 10*3 FSTA ASNRTN FLDA 0 SETX XRASIN SETB BPASIN BASE BPASIN LDX 1,1 FSTA BPASIN FLDA% BPASIN,1 /ADDR OF X FSTA BPASIN STARTF FLDA% BPASIN /GET X FSTA ASIN8 /STORE ARG AWAY. JGE .+3 /TAKE ABSOLUTE VALUE. FNEG FSUB F1ASIN /SEE IF >1 JGT ASINER /YES, ERROR FLDA ASIN8 /X USES STRAIGHT TRIG RELATION. FNEG FMUL ASIN8 /-X^2 FADD F1ASIN /1.-X^2 JEQ ASINEQ /IF 0,FAC=PI OVER 2 FSTA ASIN7 EXTERN SQRT JSR SQRT JA .+4 JA ASIN7 FSTA ASIN7 /SQRT(1.-X^2) FLDA ASIN8 FDIV ASIN7 /X/SQRT(1.-X^2) FSTA ASIN7 EXTERN ATAN JSR ATAN /TAKE THE ARCTANGENT. JA .+4 JA ASIN7 JA ASNRTN / ASINEQ, FLDA FPI2AS /RETURN PI OVER TWO. FMUL ASIN8 /TIMES ARG. JA ASNRTN