The correct answer to the level of accuracy you quote is:
137581029243568295877658.36934931
Both are correct to about 15 sig figs, which is about what the precision
of IEEE double precision arithmetic is supposed to be.
[EMAIL PROTECTED] wrote:
>
> So I have stumbled across a linux emulation bug in freebsd. Below
> is the program that returns different results based on FreeBSD,
> Linux or Linux emulation under FreeBSD.
>
> Running natively under FreeBSD:
>
> x = 53.27850000
> exp(x) = 137581029243568449912832.00000000
>
> Running natively under Linux:
>
> x = 53.278500
> exp(x) = 137581029243568449912832.000000
>
> Running under FreeBSD in Linux emulation mode:
>
> x = 53.27850000
> exp(x) = 137581029243567812378624.00000000
>
> #include <stdio.h>
> #include <math.h>
> #include <stdlib.h>
>
> int main (int argc, char **argv) {
> double x = 53.278500;
>
> printf ("x = %8lf\n", x);
> printf ("exp(x) = %8lf\n", exp(x));
>
> exit (0);
> }
>
> There are only two shared libaries in common (libc and libm) and
> both are the same on FreeBSD (in /compat/linux) and Linux.
>
> So any ideas on where the program is going wrong?
>
> - JimP
> --
> --- @(#) $Id: dot.signature,v 1.10 2001/05/17 23:38:49 Jim.Pirzyk Exp $
> __o [EMAIL PROTECTED] ------------- [EMAIL PROTECTED]
> _'\<,_ Senior Systems Engineer, Walt Disney Feature Animation
> (*)/ (*)
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
--
Stephen Montgomery-Smith
[EMAIL PROTECTED]
http://www.math.missouri.edu/~stephen
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message