std::numeric_limits::is_iec559

Roberto Bagnara bagnara@cs.unipr.it
Thu Feb 2 13:51:00 GMT 2006


Gabriel Dos Reis wrote:
> Roberto Bagnara <bagnara@cs.unipr.it> writes:
> 
> | Gabriel Dos Reis wrote:
> | > Roberto Bagnara <bagnara@cs.unipr.it> writes:
> | > | I have always used std::numeric_limits::is_iec559 thinking that,
> | > | as per the C++ standard, it yielded "[t]rue if and only if the type
> | > | adheres to IEC 559 standard."
> | > | | On a Mac OS X 10.4 machine with GCC 4.0.1, however, I get the
> | > value
> | > | true for long doubles but, as far as I can tell, the layout of
> | > | long doubles there does not conform to the 128-bit format specified
> | > | by IEC 559.
> | > I don't follow.  Exactly in what aspect do you believe the Mac OS X
> | > 10.4 representation is not conformant to IEC 559?
> | 
> |  From your question I gather that IEC 559 does not specify a binary
> | format for 128-bit numbers. 
> 
> Well, first the formats specified by IEC 559 are abstract mathematical
> models, not exact hardware representations.  For example, HP has a bit
> inverted fro NaNs, but the external semantics are preserved.  That
> does not prevent HP's representation to be conformant.
> Second, long double formats are essentially left unspecified.
> So, I suspect that your message was triggered because you came across
> some non-conformant behaviour and I was wondering exactly which
> behaviour -- to aid investigation. 

I was assuming IEC 559 was guaranteeing much more than that,
including the representation of numbers in memory.
In other words, I am in big trouble.
Thanks,

     Roberto

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara@cs.unipr.it



More information about the Libstdc++ mailing list