software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / cosh.ra
diff --git a/sw/f4/FRTSRC/cosh.ra b/sw/f4/FRTSRC/cosh.ra
new file mode 100644 (file)
index 0000000..3715b77
--- /dev/null
@@ -0,0 +1,83 @@
+/
+/ VERSION 5A 4-27-77  PT
+/
+/      C  O  S  H
+/      -  -  -  -
+/
+/SUBROUTINE    COSH(X)
+/
+/ VERSION 5A 4-27-77  PT
+       SECT    COSH
+       JA      #COSH
+COSHE, FLDA    COSHB           /GIVE INFINITY IN CASE OF NO REC
+       EXTERN  #ARGER
+       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.
+       ORG     10*3+BPCOSH
+       FNOP
+       JA      COSHXR
+       0
+CSHRTN,        JA      .
+/
+COSHLG,        0
+       2613
+       4412
+/
+COSHB, 3777
+       3777
+       7777
+/
+/
+COSH1, F 88.029                        /LIMIT FACTOR.
+       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,        FSUB    COSHLG          /SEE IF TOO BIG
+       JGT     COSHE           /YEP. ERROR
+       FADD    COSH1           /READD IN SUBTRACTION FACTOR.
+       FSTA    COSH8           / EXP(ABS(X)-LN(2))
+       EXTERN  EXP
+       JSR     EXP
+       JA      .+4
+       JA      COSH8
+       JA      CSHRTN          / A VERY GOOD APPROXIMATION.
+\f