[net.arch] Elementary Transcendental Functions in IEEE Arithmetic

dgh@sun.UUCP (04/23/86)

The discussion about elementary functions on IEEE systems
has been going on for some time, but anyone who is interested should
be aware that there is a pretty definitive statement of Prof. Kahan's
views on the matter, in the form of the 4.3 BSD libm, in which most
of the routines were coded by K. C. Ng, for VAX as well as IEEE
systems.   Any successor to P754 or P854 would probably be hard put
to improve upon those codes.

The MC 68881 elementary function implementation is also very good in
most respects, and very fast for its technology.  Most of the implementation
details are proprietary, but the programmer-visible properties are
described at length in the MC 68881 User's Manual.

Wrong approaches for IEEE systems would be to
canonize the algorithms in Cody and Waite or the System V
Interface Definition.  These are constrained to be implementable on
all antique hardware and consequently can not exploit the benefits
of IEEE arithmetic. 

Like the P754 standard itself, a standard for elementary transcendental
functions will not be fabricated as much as ratified by a committee.
Since there are a couple of good implementations widely available
the time may be ripe to pursue that as soon as P854 is finished.


As to some other comments in net.arch, anyone who has an algorithm
for correctly rounded elementary transcendental functions that
executes in a reasonable bounded time, probably has a Ph. D.
thesis if he wants it.  

Higher precision is convenient but does not solve any fundamental
problems.  Remember all computer arithmetic is fabricated from
one-bit unsigned integers, so there's no such thing as a minimum
precision required to achieve certain results.  Explicit higher precision
is just easier and more efficient than implicit higher precision,
created as the need arises, in cases like carrying pi to higher
precision by keeping it as two pieces of the available precision.