This is the mail archive of the cygwin mailing list for the Cygwin project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
I'm having trouble figuring this out. isfinite is sometimes returning
incorrect results.
In one more complicated program, I saw isfinite returning false for
negative 0 and true for -Inf, and otherwise correctly, but once I got
it down to this test case, isfinite, which is just a macro in math.h
that calls fpclassify twice, returns true for everything. The macro
looks to be completely correct, and fpclassify is working.
$ cat isfin.c
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv) {
double z = 0;
double nan = 0/z;
double inf = pow(9,999);
double ninf = pow(-9,999);
double nz = -(long double)0;
printf("nan %g inf %g ninf %g z %g nz %g\n", nan, inf, ninf, z, nz);
printf("fpclassify: nan %d inf %d ninf %d z %d nz %d\n", fpclassify(nan),
fpclassify(inf), fpclassify(ninf), fpclassify(z), fpclassify(nz));
printf("isfinite: nan %d inf %d ninf %d z %d nz %d\n", isfinite(nan),
isfinite(inf), isfinite(ninf), isfinite(z), isfinite(nz));
return 0;
}
$ gcc -o isfin.exe -Wall isfin.c;./isfin
nan NaN inf Inf ninf -Inf z 0 nz -0
fpclassify: nan 0 inf 1 ninf 1 z 2 nz 2
isfinite: nan 1 inf 1 ninf 1 z 1 nz 1
Attachment:
cygcheck.out
Description: Text document
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |