Date: Sat, 14 Jul 2001 13:58:54 -0500 From: Stephen Montgomery-Smith <stephen@math.missouri.edu> To: jmcoopr@webmail.bmi.net, Jim.Pirzyk@disney.com, freebsd-hackers@FreeBSD.ORG Subject: Re: math library difference between linux emulation and native freebsd (and native linux) Message-ID: <3B50966E.1D6E5DCC@math.missouri.edu> References: <200107141819.LAA06370@smtp.bmi.net> <3B508F8F.1AB674C6@math.missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Yes, I tried out the program
#include <stdio.h>
#include <math.h>
main() {
double x,y;
int i;
x = 53.278500;
y = exp(x);
printf("%8lf\n",x);
for(i=0;i<sizeof(double);i++)
printf("%x ",((unsigned char*)(&x))[i]);
printf("\n");
printf("%8lf\n",y);
for(i=0;i<sizeof(double);i++)
printf("%x ",((unsigned char*)(&y))[i]);
printf("\n");
}
On FreeBSD and Linux I get
53.278500
cf f7 53 e3 a5 a3 4a 40
137581029243568449912832.000000
e7 7d 89 54 48 22 bd 44
and on Linux emulation under FreeBSD I get
53.278500
cf f7 53 e3 a5 a3 4a 40
137581029243567812378624.000000
c1 7d 89 54 48 22 bd 44
I don't really know the format of IEEE very well, but it looks like some
low order bits are different - the answers are really different.
I also tried the same experiment with sin and gamma - then the problem
does not occur. Well except that the answer for gamma(53.278500) is
reported as 157.464664 which is way wrong.
When I tried it for x=52 they gave almost the same answer, only
seperated by the last bit (the decimal versions were reported as the
same). For x=54 they both gave the same wrong answer 160.331128.
I don't know a whole lot about IEEE. What is the largest number it is
supposed to handle? Looking at man math it says it should handle
numbers as large as 1.8e308 - we certainly are not in that range!!!
--
Stephen Montgomery-Smith
stephen@math.missouri.edu
http://www.math.missouri.edu/~stephen
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?3B50966E.1D6E5DCC>
