Date: Sat, 14 Jul 2001 11:17:40 -0700 From: jmcoopr@webmail.bmi.net To: Jim.Pirzyk@disney.com, freebsd-hackers@FreeBSD.ORG Subject: Re: math library difference between linux emulation and native freebsd (and native linux) Message-ID: <200107141819.LAA06370@smtp.bmi.net> In-Reply-To: <200107141809.f6EI9M809946@snoopy.fan.fa.disney.com>
index | next in thread | previous in thread | raw e-mail
In <200107141809.f6EI9M809946@snoopy.fan.fa.disney.com>, on 07/14/2001
at 11:09 AM, Jim.Pirzyk@disney.com said:
>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
My guess is difference between Linux emulation and "native" 's floating
point formatting for printf. With the number of significant digits
you're invoking, small differences in handling low order bits can be
significant.
jmc
------------------------------------------------------
jmcoopr@webmail.bmi.net
Using OS/2 since 1.0
------------------------------------------------------
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107141819.LAA06370>
