[Haskell-cafe] exp implementation
Christopher Howard
christopher.howard at frigidcode.com
Thu Apr 11 17:30:26 CEST 2013
On 04/11/2013 07:12 AM, Christopher Howard wrote:
> On 04/11/2013 06:37 AM, Brandon Allbery wrote:
>
> I traced it down some more: I think it eventually goes into the
> compiler/nativeGen section where it is translated into the platform's
> native version of the function. On my platform, I think this is the expf
> function from math.h. (See EXP(3)).
>
> I find that to be interesting, because it means you could change the
> output of your programs by altering your standard library. But I guess
> there are a lot of things you could change by altering your standard
> library!
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
In glibc, it eventual comes down to this approximation, I think (from
./sysdeps/ieee754/flt-32/e_expf.c):
code:
--------
/* Compute ex2 = 2^n e^(t/512+delta[t]). */
ex2_u.d = __exp_atable[tval+177];
ex2_u.ieee.exponent += (int) n;
/* Approximate e^(dx+delta) - 1, using a second-degree polynomial,
with maximum error in [-2^-10-2^-28,2^-10+2^-28]
less than 5e-11. */
x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx +
delta;
/* ... snip ... */
result = x22 * ex2_u.d + ex2_u.d;
--------
--
frigidcode.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130411/e8afc3fd/attachment.pgp>
More information about the Haskell-Cafe
mailing list