http://benji3up2kxewkqfcq7buxk2xd6zwy3zggnurkrm3l4cvwy2iipvyyad.onion/mirrors/gmpdoc/Square-Root-Algorithm.html
The square root of the high two parts is taken, by recursive application of
the algorithm (bottoming out in a one-limb Newton’s method), s1,r1 = sqrtrem (a3*b + a2) This is an approximation to the desired root and is extended by a division to
give s , r , q,u = divrem (r1*b + a1, 2*s1)
s = s1*b + q
r = u*b + a0 - q^2 The normalization requirement on a3 means at this point s is
either correct or 1 too big. r is negative in the latter case, so if r < 0 then
r = r + 2*s - 1
s = s - 1 The...