More suitable than previously suggested scheme is Gerlach's scheme (possible extension of the classic Newton method) for square roots. The convergence is "decadic" , meaning that the number of good digits expands tenfold on each iteration
Hi,> > Does anyone know of any approximations to the square root function thatare > more computationaly efficient. (I need to it for implementation in> hardware). >> thanks for any help ------------------------------------- A method other than Newton iteration was used in the Fortran library for the square root. This describes how the square root was done in software for a system that had three precisions of floating point arithmetic, called short, long and extended with 4,8,16 bytes, using base 16. The extended precision arithmetic did not include a divide which had to be simulated. Here is an outline of how the square root was done. There were 2 iterations in short precision, one in long and one in extended arithemetic. Scaling the input argument is used to avoid possible intermediate underflows. The first approximation y is computed as: y0= 16^16(1.807018 - 1.576942/(m+.950356) where m is the mantissa of the argument between 1/16 and 1. and the maximum relative error of y0 is 2^-5.48 The final interation carried out in extended precision: y4=y3 - 2y3*((y3^2-x)/(3y3^2+x)) This is an equivalent form due to Richard Dedekind in 1830's and published in Survey of Numerical Analysis J Todd 1962 In the process of combining terms a rounding bias is introduced to attain results which are almost always properly rounded. For the vector machines the square root was improved to always round properly due to a method devised by Bryant Tuckerman. See System Journal article FORTRAN extended precision library by the late H Kuki and J Ascoly V10N1 1971. The square root of a negative number should result in an error message. Hardware handles exceptions by using interupts.