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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107141819.LAA06370>