NAN and complex.h
Hi I made a program which basically averages data from a file. The data is stored as complex float and I'm reading it with fread with no problem. Some data are taged as NAN (at least ENVI, an image procesing soft read these values as NAN). If I average the whole data adding a number with a NAN gives me a NAN and my whole program fails.
What I did is the folowing which doesn't seems to work:
if(cabsf(zhhzhh)!= NAN)
{
printf("%f\n", cabsf(zhhzhh));
}For some reason the test seeams to be positive all the time, I keep printing NAN's ("nan" actualy).
Any idea?
Tomas
Signature · 2 lines
View this message in context: http://www.nabble.com/NAN-and-complex.h-tf4477349.html#a12766829 Sent from the linux-c-programming mailing list archive at Nabble.com.
Quoted 9 lines · TOMAZ
Hi I made a program which basically averages data from a file. The data is stored as complex float and I'm reading it with fread with no problem. Some data are taged as NAN (at least ENVI, an image procesing soft read these values as NAN). If I average the whole data adding a number with a NAN gives me a NAN and my whole program fails.
What I did is the folowing which doesn't seems to work:
if(cabsf(zhhzhh)!= NAN)
Quoted 8 lines
{ printf("%f\n", cabsf(zhhzhh)); }For some reason the test seeams to be positive all the time, I keep printing NAN's ("nan" actualy).
Any idea?
NaN is not equal to anything, including itself.
To test for NaN, use isnan(). If you don't have isnan() (it's C99, not C89), test whether "x != x" (true for NaN, false for everything else).
Signature · 1 line
Glynn Clements <[email protected]>
Quoted 9 lines
Hi I made a program which basically averages data from a file. The data is stored as complex float and I'm reading it with fread with no problem. Some data are taged as NAN (at least ENVI, an image procesing soft read these values as NAN). If I average the whole data adding a number with a NAN gives me a NAN and my whole program fails.
What I did is the folowing which doesn't seems to work:
if(cabsf(zhhzhh)!= NAN)
Quoted 8 lines
{ printf("%f\n", cabsf(zhhzhh)); }For some reason the test seeams to be positive all the time, I keep printing NAN's ("nan" actualy).
Any idea?
use isnan or isfinite to check for wrong values
BX