Directory of image this file is from
This file as a plain text file
/ / / SUBROUTINE DATAN(X) / / VERSION 5A 4-26-77 (MH) / /X,THE ARGUMENT, IS REDUCED TO /0<X<1/2 /BY THE IDENTITIES: /ATAN(-X)=-ATAN(X) /IF X>1.0 THEN ATAN(X)=PI/2 - ATAN(1/X) /IF .5<X<1.0 THEN ATAN(X)=ATAN(1/2)+ATAN(2*X-(1/(X+2))) /ATAN(X)=X FOR X<2^(-15) / / / SECT DATAN JA #DATAN DPCHK / TEXT +DATAN + DATNXR, SETX XRDATN SETB BPDATN BPDATN, F 0.0 XRDATN, F 0.0 DATFP1, F 1.0 F 0.0 DATLOW, -15 2000 0000 0000 0000 0000 / ORG 10*3+BPDATN FNOP JA DATNXR 0 DATRTN, JA . / LAMBDA, 0004 3057 7537 4017 0276 4536 DATB0, 0005 3221 3522 3121 3352 5066 DATA1, 0007 5372 4104 3437 1766 6167 DATB1, 0003 3135 1757 0565 4141 4270 DATA2, 0001 5473 7524 1112 4701 2723 DATB2, 0002 2065 4070 1015 2710 3176 DATA3, 7775 5374 4326 3317 1675 3124 DATB3, 0001 2410 5255 0370 2076 6374 PIS2, 0001 3110 3755 2421 0264 3013 ATN1S2, 7777 3553 0634 0530 3443 6406 DATP5, 7777 3777 7777 7777 7777 7776 X, F 0.0 F 0.0 C0, F 0.0 F 0.0 DT1, F 0.0 F 0.0 DATFP2, F 2.0 F 0.0 Z, F 0.0 F 0.0 / /PICK UP RETURN AND ARGUMENT BASE 0 #DATAN, STARTD FLDA 10*3 FSTA DATRTN FLDA 0 SETX XRDATN SETB BPDATN BASE BPDATN LDX 1,1 FSTA BPDATN FLDA% BPDATN,1 FSTA BPDATN STARTE FLDA% BPDATN /GET X LDX -1,0 /SIGN JGE .+5 LDX 0,0 /SAVE SIGN FNEG FSTA X /SAVE ARG / /CHECK ARGAINST LOWER LIMIT FLDA X FSUB DATLOW /TOO SMALL? JLE DATGO /YES ATAN(X)=X LDX -1,1 FCLA FSTA C0 / /REDUCE X TO RANGE 0<X<.5 DATA, FLDA X FSUB DATFP1 JLE DATB />1? 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