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.