[comp.arch] Calculating logs and exponentials

radford@calgary.UUCP (06/02/87)

I've thought of a nifty algorithm for calculating logarithms and
exponentials, and would like to find out if it's new. If anyone
would like to enlighten me as to the current state of the art in this
area I would appreciate it. References would be nice too.

I already know about polynomials in (1+x)/(1-x). My algorithm just
does two adds and a shift for every bit of precision. This makes it
most appropriate for hardware implementation, or software on a machine
without floating-point hardware.

It's probably best to mail rather than post.

Thanks,

    Radford Neal

radford@calgary.UUCP (06/05/87)

It turns out that my algorithm for computing logs and exponentials is
a special case of the CORDIC algorithm, for which see, e.g.:

    Walther, J. (1971) A Unified Algorithm for Elementary Functions,
    Joint Computer Conference Proceedings, vol. 38 (Spring 1971),
    pp. 379-385.

CORDIC also calculates sin, cos, and lots more, all in about the
time required for a multiply, assuming it is implemented in the same
technology as the multiply.

Thanks to all who responded. My next question is: Why is CORDIC not used
more?

   Radford Neal