[Fwd: Re: [std-interval] Interval comparison operators]
    Alan Eliasen 
    eliasen at mindspring.com
       
    Mon Jun  5 16:13:54 PDT 2006
    
    
  
> On Jun 1, 2006, at 3:25 AM, Alan Eliasen wrote:
> 
>> I know of no portable functions other than std::isnan()
>> (defined in cmath) which simply detects if it's a NaN or not, so you
>> shouldn't even expect to differentiate between these two.
Hervé Brönnimann wrote:
> FWIW, std::numeric_limits<T> has members has_quiet_NaN and 
> has_signaling_NaN along with quiet_NaN and signaling_NaN.  What you  can
> expect is to differentiate between them IF your platform supports  them
> (and the numeric_limits given by your system is accurate for the 
> platform, as it should).
   If the implementations I've looked at are proper, has_quiet_NaN and
has_signaling_NaN are only boolean fields (not functions!) which only
tell you if a particular numeric type (e.g. double or int) has a special
value which could represent those NaNs.  They tell you nothing about
whether a particular number *is* a NaN of either type.
   In, say, gcc 4.1.1, has_signaling_NaN is simply defined as:
 static const bool has_signaling_NaN = has_quiet_NaN;
   So, again, without lack of evidence to the contrary, I stand by my
assertion that isnan() is the only standard function available to detect
if a number is a NaN or not, and it can't distinguish between quiet and
signaling NaNs.
-- 
  Alan Eliasen                 |  "When trouble is solved before it
  eliasen at mindspring.com       |    forms, who calls that clever?"
  http://futureboy.us/         |              --Sun Tzu
    
    
More information about the Std-interval
mailing list