X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fos8%2Fv3d%2Fsources%2Ffortran%2Fall%2Fsinh.ra;fp=sw%2Fos8%2Fv3d%2Fsources%2Ffortran%2Fall%2Fsinh.ra;h=1c300a39a98a6884c0d6296075b10868c32f1439;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/os8/v3d/sources/fortran/all/sinh.ra b/sw/os8/v3d/sources/fortran/all/sinh.ra new file mode 100644 index 0000000..1c300a3 --- /dev/null +++ b/sw/os8/v3d/sources/fortran/all/sinh.ra @@ -0,0 +1,105 @@ +/ +/ +/ S I N H +/ - - - - +/ +/SUBROUTINE SINH(X) +/ +/ VERSION 5A 4-27-77 PT +/ + SECT SINH + JA #SINH + TEXT +SINH + +SINHXR, SETX XRSINH + SETB BPSINH +BPSINH, FNOP + 0 + 0 +XRSINH, F 0.0 +SINH6, F 0.0 +SINH7, F 0.0 +SINH8, F 0.0 +F1SINH, F 1. +F2SINH, F 2. + ORG 10*3+BPSINH + FNOP + JA SINHXR + 0 +SNHRTN, JA . +/ +SINHLG, 0 + 2613 + 4412 +/ +SINH1, F .1 +/ +SINH2, F 87.929 +/ +SINH3, F 6. +/ +SINH4, F 120. + BASE 0 +#SINH, STARTD + FLDA 10*3 + FSTA SNHRTN + FLDA 0 + SETX XRSINH + SETB BPSINH + BASE BPSINH + LDX 1,1 + FSTA BPSINH + FLDA% BPSINH,1 /ADDR OF X + FSTA BPSINH + STARTF + FLDA% BPSINH /GET X + FSTA SINH8 /SAVE THE ARGUMENT. + JGE .+3 /MAKE IT POSITIVE. + FNEG + FSTA SINH7 /AND SAVE ABS VALUE IN CASE WE NEED IT. + FSUB SINH1 /IS IT LESS THEN .1? + JLE SINHSR /YES. USE SERIES APPROXIMATION. + FSUB SINH2 /IS IT GREATER THEN 88.029? + JGE SINHAP /YES. USE LOG(2) APPROXIMATION. + EXTERN EXP + JSR EXP /EXP(X) + JA .+4 + JA SINH8 + FSTA SINH7 + FLDA F1SINH + FDIV SINH7 /1/EXP(X) + FNEG /-1/EXP(X) + FADD SINH7 /EXP(X)-1/EXP(X) + FDIV F2SINH / 1/2(EXP(X)-1/EXP(X)) + JA SNHRTN /AND RETURN NOW. +/ +/ +SINHAP, FLDA SINH7 /RECALL ABSOULTE VALUE. + FSUB SINHLG /ABS(X)-LN(2) + FSTA SINH7 /EXP(ABS(X)-LN(2)) + EXTERN EXP + JSR EXP + JA .+4 + JA SINH7 + FSTA SINH7 + FLDA SINH8 /GET SIGN OF ARGUMENT. + JGE SPLR /LOAD POSITIVE IF ARG WAS POSITIVE. + FLDA SINH7 + FNEG /ELSE NEGATE IT. + JA SNHRTN /AND RETURN. +SPLR, FLDA SINH7 + JA SNHRTN +/ +/ +SINHSR, FLDA SINH8 /X SERIES IF X<.1 + FMUL SINH8 /X^2 + FSTA SINH7 /X^2 + FMUL SINH8 /X^3 + FSTA SINH6 /X^3 + FMULM SINH7 /X^5 + FDIV SINH3 /X^3/6 + FADDM SINH8 /X+X^3/6 + FLDA SINH7 /X^5 + FDIV SINH4 /X^5/120 + FADD SINH8 /X+X^3/6+X^5/120 + JA SNHRTN /VOILA. WE ARE DONE. +