Trouble with exp() on S/Linux?
От | Keith Parks |
---|---|
Тема | Trouble with exp() on S/Linux? |
Дата | |
Msg-id | 199801091553.PAA03075@mtcc.demon.co.uk обсуждение исходный текст |
Список | pgsql-hackers |
Hi, I have built and installed the latest version of the PostgreSQL RDBMS on S/Linux but am having problems with the regression tests. Many of the failures come from floating point exceptions. I've written a small c prog to demonstrate the problem which seems to show that using exp() on a number less than 1.0e-150 gives an FPE. Can anyone tell me what's broken, if anything. I'm really not sure whether it is... cpu : Fujitsu or Weitek Power-UP fpu : Fujitsu or Weitek on-chip FPU kernel : sparclinux-2.0-980106 libc/m : libc.so.5.3.12/libm.so.5.0.6 gcc : gcc version 2.7.2.1 Something else??? Expected behaviour??? The machine is a SPARCstation IPX running Red Hat 4.2. Thanks for any help, Keith. [emkxp01@sparclinux ~]$ cat mxdb.c #include <stdio.h> #include <stdlib.h> #include <math.h> #include <float.h> main() { double dbval; dbval = atof("1.0e-150"); printf("dbl1 = %e\n", dbval); printf("Exp dbl1 = %e\n", exp(dbval)); dbval = atof("1.0e-151"); printf("dbl2 = %e\n", dbval); printf("Exp dbl2 = %e\n", exp(dbval)); } [emkxp01@sparclinux ~]$ gcc mxdb.c -lm [emkxp01@sparclinux ~]$ ./a.out dbl1 = 1.000000e-150 Exp dbl1 = 1.000000e+00 dbl2 = 1.000000e-151 Floating exception (core dumped)
В списке pgsql-hackers по дате отправления: