software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / cosh.ra
... / ...
CommitLineData
1/
2/ VERSION 5A 4-27-77 PT
3/
4/ C O S H
5/ - - - -
6/
7/SUBROUTINE COSH(X)
8/
9/ VERSION 5A 4-27-77 PT
10 SECT COSH
11 JA #COSH
12COSHE, FLDA COSHB /GIVE INFINITY IN CASE OF NO REC
13 EXTERN #ARGER
14 TRAP4 #ARGER
15 TEXT +COSH +
16COSHXR, SETX XRCOSH
17 SETB BPCOSH
18BPCOSH, FNOP
19 0
20 0
21XRCOSH, F 0.0
22COSH7, F 0.0
23COSH8, F 0.0
24F1COSH, F 1.
25F2COSH, F 2.
26 ORG 10*3+BPCOSH
27 FNOP
28 JA COSHXR
29 0
30CSHRTN, JA .
31/
32COSHLG, 0
33 2613
34 4412
35/
36COSHB, 3777
37 3777
38 7777
39/
40/
41COSH1, F 88.029 /LIMIT FACTOR.
42 BASE 0
43#COSH, STARTD
44 FLDA 10*3
45 FSTA CSHRTN
46 FLDA 0
47 SETX XRCOSH
48 SETB BPCOSH
49 BASE BPCOSH
50 LDX 1,1
51 FSTA BPCOSH
52 FLDA% BPCOSH,1 /ADDR OF X
53 FSTA BPCOSH
54 STARTF
55 FLDA% BPCOSH /GET X
56 FSTA COSH8 /SAVE ARGUMENT
57 JGE .+3 /ABS(X)
58 FNEG
59 FSTA COSH7
60 FSUB COSH1 /TEST FOR LIMITS.
61 JGE COSHBG
62 EXTERN EXP
63 JSR EXP /EXP(X)
64 JA .+4
65 JA COSH8
66 FSTA COSH7
67 FLDA F1COSH /1.
68 FDIV COSH7 / 1./EXP(X)
69 FADD COSH7 / EXP(X)+1./EXP(X)
70 FDIV F2COSH / (EXP(X)+1./EXP(X))2.
71 JA CSHRTN /AND THAT IS THE DEFINITION OF COSH.
72/
73/
74COSHBG, FSUB COSHLG /SEE IF TOO BIG
75 JGT COSHE /YEP. ERROR
76 FADD COSH1 /READD IN SUBTRACTION FACTOR.
77 FSTA COSH8 / EXP(ABS(X)-LN(2))
78 EXTERN EXP
79 JSR EXP
80 JA .+4
81 JA COSH8
82 JA CSHRTN / A VERY GOOD APPROXIMATION.
83\f