"Paul A. Bristow" <[EMAIL PROTECTED]> writes:

| | Signalling NaNs are used to indicate missing initialization values.
| 
| This is OK for catching missing initialization by mistake - but not
| for OK for deliberately missing because there really is no value
| (measurement missing). 

There is not just one qNaN (nor just one sNaN).  There is a range for
NaNs.  And most of the systems I worked with, the pattern bits in a
NaN is used to communicate the reason of being of the NaN.  For
example, it may output  sNaN("missing-value").

Note: C99 provides a pseudo-standard way to produce NaNs, through the 
functions 

    double nan(const char*);
    float  nanf(const char*);
    long double nanl(const char*);

| 
| In this case, for example calculating the mean, you want to test if the value is
| present/valid 'is_not_missing' before you add it to the sum and increment the
| count.
| 
| Testing !is_nan is possible solution but I'm not sure it is ideal.

Indeed, it is no good.

| Suggestions?

I would first make a summary of the usage of the bit patterns for NaNs
and decide on one and document it. 
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to