[Numpy-discussion] Slightly off-topic - accuracy of C exp function?
njs at pobox.com
Wed Apr 23 04:43:35 EDT 2014
On Wed, Apr 23, 2014 at 6:22 AM, Matthew Brett <matthew.brett at gmail.com> wrote:
> I'm exploring Mingw-w64 for numpy building, and I've found it gives a
> slightly different answer for 'exp' than - say - gcc on OSX.
> The difference is of the order of the eps value for the output number
> (2 * eps for a result of ~2.0).
> Is accuracy somewhere specified for C functions like exp? Or is
> accuracy left as an implementation detail for the C library author?
C99 says (sec 184.108.40.206.2) that "The accuracy of the floating point
operations ... and of the library functions in <math.h> and
<complex.h> that return floating point results is implemenetation
defined. The implementation may state that the accuracy is unknown."
(This last sentence is basically saying that with regard to some
higher up clauses that required all conforming implementations to
document this stuff, saying "eh, who knows" counts as documenting it.
Hooray for standards!)
Presumably the accuracy in this case is a function of the C library
anyway, not the compiler? Numpy has its own implementations for a
bunch of the math functions, and it's been unclear in the past whether
numpy or the libc implementations were better in any particular case.
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
More information about the NumPy-Discussion