Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | / |
2 | / | |
3 | / S I N H | |
4 | / - - - - | |
5 | / | |
6 | /SUBROUTINE SINH(X) | |
7 | / | |
8 | / VERSION 5A 4-27-77 PT | |
9 | / | |
10 | SECT SINH | |
11 | JA #SINH | |
12 | TEXT +SINH + | |
13 | SINHXR, SETX XRSINH | |
14 | SETB BPSINH | |
15 | BPSINH, FNOP | |
16 | 0 | |
17 | 0 | |
18 | XRSINH, F 0.0 | |
19 | SINH6, F 0.0 | |
20 | SINH7, F 0.0 | |
21 | SINH8, F 0.0 | |
22 | F1SINH, F 1. | |
23 | F2SINH, F 2. | |
24 | ORG 10*3+BPSINH | |
25 | FNOP | |
26 | JA SINHXR | |
27 | 0 | |
28 | SNHRTN, JA . | |
29 | / | |
30 | SINHLG, 0 | |
31 | 2613 | |
32 | 4412 | |
33 | / | |
34 | SINH1, F .1 | |
35 | / | |
36 | SINH2, F 87.929 | |
37 | / | |
38 | SINH3, F 6. | |
39 | / | |
40 | SINH4, F 120. | |
41 | BASE 0 | |
42 | #SINH, STARTD | |
43 | FLDA 10*3 | |
44 | FSTA SNHRTN | |
45 | FLDA 0 | |
46 | SETX XRSINH | |
47 | SETB BPSINH | |
48 | BASE BPSINH | |
49 | LDX 1,1 | |
50 | FSTA BPSINH | |
51 | FLDA% BPSINH,1 /ADDR OF X | |
52 | FSTA BPSINH | |
53 | STARTF | |
54 | FLDA% BPSINH /GET X | |
55 | FSTA SINH8 /SAVE THE ARGUMENT. | |
56 | JGE .+3 /MAKE IT POSITIVE. | |
57 | FNEG | |
58 | FSTA SINH7 /AND SAVE ABS VALUE IN CASE WE NEED IT. | |
59 | FSUB SINH1 /IS IT LESS THEN .1? | |
60 | JLE SINHSR /YES. USE SERIES APPROXIMATION. | |
61 | FSUB SINH2 /IS IT GREATER THEN 88.029? | |
62 | JGE SINHAP /YES. USE LOG(2) APPROXIMATION. | |
63 | EXTERN EXP | |
64 | JSR EXP /EXP(X) | |
65 | JA .+4 | |
66 | JA SINH8 | |
67 | FSTA SINH7 | |
68 | FLDA F1SINH | |
69 | FDIV SINH7 /1/EXP(X) | |
70 | FNEG /-1/EXP(X) | |
71 | FADD SINH7 /EXP(X)-1/EXP(X) | |
72 | FDIV F2SINH / 1/2(EXP(X)-1/EXP(X)) | |
73 | JA SNHRTN /AND RETURN NOW. | |
74 | / | |
75 | / | |
76 | SINHAP, FLDA SINH7 /RECALL ABSOULTE VALUE. | |
77 | FSUB SINHLG /ABS(X)-LN(2) | |
78 | FSTA SINH7 /EXP(ABS(X)-LN(2)) | |
79 | EXTERN EXP | |
80 | JSR EXP | |
81 | JA .+4 | |
82 | JA SINH7 | |
83 | FSTA SINH7 | |
84 | FLDA SINH8 /GET SIGN OF ARGUMENT. | |
85 | JGE SPLR /LOAD POSITIVE IF ARG WAS POSITIVE. | |
86 | FLDA SINH7 | |
87 | FNEG /ELSE NEGATE IT. | |
88 | JA SNHRTN /AND RETURN. | |
89 | SPLR, FLDA SINH7 | |
90 | JA SNHRTN | |
91 | / | |
92 | / | |
93 | SINHSR, FLDA SINH8 /X SERIES IF X<.1 | |
94 | FMUL SINH8 /X^2 | |
95 | FSTA SINH7 /X^2 | |
96 | FMUL SINH8 /X^3 | |
97 | FSTA SINH6 /X^3 | |
98 | FMULM SINH7 /X^5 | |
99 | FDIV SINH3 /X^3/6 | |
100 | FADDM SINH8 /X+X^3/6 | |
101 | FLDA SINH7 /X^5 | |
102 | FDIV SINH4 /X^5/120 | |
103 | FADD SINH8 /X+X^3/6+X^5/120 | |
104 | JA SNHRTN /VOILA. WE ARE DONE. | |
105 | \f |