File: ACOS.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/R=ACOS(R) SINGLE PREC. TRIG. ARC-COSINE / / / VERSION 40A 23-MAY-80 WVDM / / SECT ACOS JA #ACOS EXTERN #ARGER ACOSER, TRAP4 #ARGER TEXT +ACOS + ACOSXR, SETX XRACOS SETB BPACOS BPACOS, FNOP 0 0 XRACOS, F 0.0 ACOS8, F 0.0 ACOS7, F 0.0 FPI2AC, 1 /PI OVER 2 3110 3755 F1ACOS, F 1. FPIACS, 2 /PI 3110 3755 ORG 10*3+BPACOS FNOP JA ACOSXR 0 ACSRTN, JA . / BASE 0 #ACOS, STARTD FLDA 10*3 FSTA ACSRTN FLDA 0 SETX XRACOS SETB BPACOS BASE BPACOS LDX 1,1 FSTA BPACOS FLDA% BPACOS,1 /ADDR OF X FSTA BPACOS STARTF FLDA% BPACOS /GET X FSTA ACOS8 /SAVE IT JEQ ACOSEQ /IF 0 RETURN PI OVER 2 LDX -1,0 /JUMP TIME JGE .+5 LDX 0,0 FNEG FSUB F1ACOS /1-ABS(X) JGT ACOSER /IS IT .GT. 1.? ERROR FLDA ACOS8 /X FMUL ACOS8 /X^2 FNEG /-X^2 FADD F1ACOS /1-X^2 FSTA ACOS7 EXTERN SQRT JSR SQRT /CALL SQRT JA .+4 /SQRT (1-X^2) JA ACOS7 FDIV ACOS8 /SQRT (1-X^2)/X FSTA ACOS7 EXTERN ATAN JSR ATAN /CALL ATAN JA .+4 /ATAN (SQRT(1-X^2)/X) JA ACOS7 JXN ACSRTN,0 /NO SIGN CHANGE NECESSARY FADD FPIACS /ADD PI IF MINUS JA ACSRTN / ACOSEQ, FLDA FPI2AC /RETURN PI OVER 2 IF 0 JA ACSRTN