X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Ff4%2FFRTSRC%2Fdatan.ra;fp=sw%2Ff4%2FFRTSRC%2Fdatan.ra;h=fcd488b3b76ee8bba6d961e87cb111bfd3ab4d19;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/f4/FRTSRC/datan.ra b/sw/f4/FRTSRC/datan.ra new file mode 100644 index 0000000..fcd488b --- /dev/null +++ b/sw/f4/FRTSRC/datan.ra @@ -0,0 +1,203 @@ +/ +/ +/ SUBROUTINE DATAN(X) +/ +/ VERSION 5A 4-26-77 (MH) +/ +/X,THE ARGUMENT, IS REDUCED TO +/01.0 THEN ATAN(X)=PI/2 - ATAN(1/X) +/IF .51? + FLDA DATFP1 /YES + FDIV X /X=1/X + LDX 0,1 /SET FLAG + FSTA X +DATB, FLDA X + FSUB DATP5 />= .5 + JLT DATC + FLDA X /X=(2X-1)/(X+2) + FADD DATFP2 + FSTA DT1 /TEMP + FLDA X + FMUL DATFP2 + FSUB DATFP1 + FDIV DT1 + FSTA X + FLDA ATN1S2 /C0=ATAN(1/2) + FSTA C0 +/COMPUTE ATAN USING ALGORITHM +DATC, FLDA X + FMUL X + FSTA Z /Z=X*X + FLDA Z + FADD DATB3 /Z+B3 + FSTA DT1 + FLDA DATA3 + FDIV DT1 /A3/(Z+B3) + FADD DATB2 + FADD Z /ADD Z+B2 + FSTA DT1 /TEMP + FLDA DATA2 /A2/TEMP + FDIV DT1 + FADD DATB1 + FADD Z /ADD Z +B1 + FSTA DT1 /TEMP + FLDA DATA1 /A1/TEMP + FDIV DT1 + FADD DATB0 /ADD Z+B0 + FADD Z + FSTA DT1 + FLDA LAMBDA /LAMBDA*X + FMUL X + FDIV DT1 /DIV BY THE REST + FADD C0 + FSTA X + JXN DATD,1 /WAS X>1 ORIGINALLY? + FLDA PIS2 /Y ATAN(X)=PI/2-ATAN(X) + FSUB X +DATD, JXN DATRTN,0 /WAS X<0? + FNEG /Y + JA DATRTN +DATGO, FLDA X + JA DATD +