                                         /GEORGE FRIEDMAN
/MAN VEHICLE CONTROL LABORATORY
/MASSACHUSETTS INSTITUTE OF TECHNOLOGY
/CAMBRIDGE,MASSACHUSETTS
/
/SQUARE ROOT FUNCTION BY SUBTRACTION REDUCTION
/
/USES REDUCTION FORMULA: (A+B)**2=A**2+B*(2*A+B)
/
/29 WORDS LONG,USES EAE, TIME=213 TO 222 MICROSECONDS
/FASTER THAN STANDARD ODD INTEGER ROUTINE IF ROOT IS LARGER THAN 8
/
                                                             SQRT,0
MQL
TAD M6               /6 PASSES THROUGH MAIN LOOP
DCA CNTR
DCA ROOT
LOOP,SHL             /SHIFT REMAINDER 2 LEFT
1
DCA SAVAC
TAD ROOT             /SHIFT ROOT 1 LEFT
RAL CLL
DCA ROOT
TAD ROOT             /TRY SUBTRACTING 2*ROOT+1
CMA STL RAL
TAD SAVAC
SZL                  /RESULT?
JMP .+3
ISZ ROOT             /POSITIVE, INCREMENT ROOT
JMP .+3
CLA                  /NEGATIVE, RESTORE AC
TAD SAVAC
ISZ CNTR
JMP LOOP
DCA SAVAC
TAD ROOT             /GET ROOT
JMP I SQRT
M6,-6
CNTR,0
ROOT,0
SAVAC,0
$
                              ww