Integer square root

Kenji Rikitake <>
Tue Jan 26 02:26:47 CET 2010


Very long time ago I was trying to solve the square root
problem, but I didn't because handling in the float numbers
gave the sufficient precision for me.

In general, a quick method of
solving X when Y = X * X and Y is given (X, Y are bignums) as:

1) Obtain approximation of X by float sqrt of Y
   separately to significand and exponent
   (note: IEEE754 format has its own limits in
          the digits of exponent too)

2) applying Newton-Raphson method so that
   Xnew = (X + (Y / X)) / 2

3) Repeat finding Xnew on 2) until Xnew =:= X

Things you need to invent:

* bignum integer dividing program
  (bignum / bignum -> bignum (+ remainder, maybe))
  (This is NOT provided by Erlang)

FYI
Kenji Rikitake 

In the message <>
dated Mon, Jan 25, 2010 at 07:33:03PM +1300,
Richard O'Keefe <> writes:
> Didn't we have exactly this conversation several months ago?
> At the time I said that it is straightforward to write an
> integer square root function, and by that I meant >> in Erlang <<,
> no port programs needed.


More information about the erlang-questions mailing list