| 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 |