File: COSH.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/R=COSH(R) SINGLE PREC. HYPERBOLIC COSINE / / / VERSION 40A 26-MAY-80 WVDM / / SECT COSH JA #COSH EXTERN #ARGER COSHE, TRAP4 #ARGER TEXT +COSH + COSHXR, SETX XRCOSH SETB BPCOSH BPCOSH, FNOP 0 0 XRCOSH, F 0.0 COSH7, F 0.0 COSH8, F 0.0 F1COSH, F 1. F2COSH, F 2. COSHLG, F 0.6931472 /LN(2) COSH1, F 87.337 /LIMIT FACTOR. LN(2^126) ORG 10*3+BPCOSH FNOP JA COSHXR 0 CSHRTN, JA . / BASE 0 #COSH, STARTD FLDA 10*3 FSTA CSHRTN FLDA 0 SETX XRCOSH SETB BPCOSH BASE BPCOSH LDX 1,1 FSTA BPCOSH FLDA% BPCOSH,1 /ADDR OF X FSTA BPCOSH STARTF FLDA% BPCOSH /GET X FSTA COSH8 /SAVE ARGUMENT JGE .+3 /ABS(X) FNEG FSTA COSH7 FSUB COSH1 /TEST FOR LIMITS. JGE COSHBG EXTERN EXP JSR EXP /EXP(X) JA .+4 JA COSH8 FSTA COSH7 FLDA F1COSH /1. FDIV COSH7 / 1./EXP(X) FADD COSH7 / EXP(X)+1./EXP(X) FDIV F2COSH / (EXP(X)+1./EXP(X))/2. JA CSHRTN /AND THAT IS THE DEFINITION OF COSH. / COSHBG, FLDA COSH7 /GET BACK ARGUMENT (ABS) FSUB COSHLG /READ IN SUBTRACTION FACTOR. FSTA COSH8 / EXP(ABS(X)-LN(2)) EXTERN EXP JSR EXP JA .+4 JA COSH8 JA CSHRTN / A VERY GOOD APPROXIMATION.