/ /SQRT.V03 /8K FORTRAN LIBRQRY /COPYRIGHT 1969 /DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ENTRY SQRT / / SQUARE ROOT ROUTINE / IF X0 IS AN APPROXIMATION FOR Y**(1/2) / THEN (X0+(Y/X0))/2 IS A BETTER APPROXIMATION / X0, BLOCK 3 Y, BLOCK 3 CNT, BLOCK 1 / / CPAGE 4 SQER, 6321 /"SQRT" ERROR FROM LOC XXXXX 2224 SQRT, BLOCK 2 /ENTRY POINT TAD I SQRT DCA IN INC SQRT# TAD I SQRT DCA IN# ISZ SQRT# CALL 1,FAD IN, ARG 0 CALL 1,STO /Y=ARGUMENT ARG Y CALL 1,FAD ARG Y TAD ACH /IF Y NEGATIVE THEN ERROR SMA JMP POS CALL 1,ERROR ARG SQER CLA CLL CMA RAR AND ACH POS, SZA /IF Y=0 THEN ROOT=0 JMP NONZ RETRN SQRT NONZ, RAR CLL /FORM INITIAL APPROXIMATION TAD (1004 DCA ACH TAD ACM RAR DCA ACM TAD ACL RAR DCA ACL TAD ACH AND (4 SNA CLA TAD (2 TAD ACH DCA ACH TAD (-3 /DO 3 ITERATIONS DCA CNT INIT, CALL 1,STO ARG X0 CALL 1,FAD ARG Y CALL 1,FDV /Y/X0 ARG X0 CALL 1,FAD /(Y/X0)+X0 ARG X0 TAD ACH /((Y/X0)+X0)/2 TAD (7770 DCA ACH ISZ CNT JMP INIT RETRN SQRT END