* The algorithm uses Newton�s method to calculate the IEEE-754 correctly *
* rounded double square root, starting with 8 bit estimate for: *
* g � �x and y � 1/2�x. Using MAF instructions, each iteration refines *
* the original approximations g and y with rounding mode set to nearest. *
* The final step calculates g with the caller�s rounding restored. This *
* in turn guarantees proper IEEE rounding and exceptions. INEXACT is the *
* only possible exception raised in this calculation. Initial guesses *
* for g and y are determined from argument x via table lookup into the *
* array SqrtTable. *
(some characters are not shown correctly because I don't know what encoding it is)
So I guess the first thing to do is to understand how "Newton's method" works.
Newton's method, [...] is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valued function.
The idea is to start with an initial guess, then to approximate the function by ...
It seems like SqrtTable is used to make that "initial guess".
hmm. Wonder whats in that table. I'd have said shift right half the binary digits (not counting the leading zeros). Eg, 1234567 downshifted by 10 (it has 21 binary digits) is 1205, its root is 1111.blah