Re: Use of C99 extra long double math functions after r236148

From: Stephen Montgomery-Smith <stephen_at_missouri.edu>
Date: Sun, 08 Jul 2012 14:06:46 -0500
Here is a technical question.  I know that people always talk about 
ulp's in the context of how good a function implementation is.  I think 
the ulp is the number of base 2 digits at the end of the mantissa that 
we cannot rely on.

So if one were to write a naive implementation of lexp(x) that used 
Taylor's series if x is positive, and 1/lexp(-x) is x is negative - well 
one could fairly easily estimate an upper bound on the ulp, but it 
wouldn't be low (like ulp=1 or 2), but probably rather higher (ulp of 
the order of 10 or 20).

So do people really work hard to get that last drop of ulp out of their 
calculations?  Would a ulp=10 be considered unacceptable?

Also, looking through the source code for the FreeBSD implementation of 
exp, I saw that they used some rather smart rational function.  (I don't 
know how they came up with it.)

Presumably a big part of the issue is to make the functions work rather 
fast.  And a naive implementation of Taylor's series wouldn't be fast. 
But if people want lexp rather than exp, they must have already decided 
that accuracy is more important than speed.
Received on Sun Jul 08 2012 - 17:06:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:28 UTC