Ed Smith-Rowland wrote:
Paolo Carlini wrote:
On 02/26/2010 01:03 PM, Andreas Schwab wrote:
Paolo Carlini <paolo.carl...@oracle.com> writes:
At the moment I'm trying to cook up something fixing that count with
LDBL_MANT_DIG, but maybe there is something simpler, maybe using
preprocessor builtins?!?
What's wrong with LDBL_MANT_DIG?
Nothing Andreas, the information is all there, essentially. I was hoping
in something more "clever", and closer to the actual number, including
the exponent, etc.

Paolo.

Huh. I would have *sworn* that sizeof(long double) was 10 not 16 even though we know it was 80 bits.

How about (in the language of numeric_limits):

bits = 1     //  sign bit
     + ::digits    //  significand bits
     + log2(1 + ::max_exponent - ::min_exponent)  //  exponent bits

There are preprocessor macros for each these things IIRC if you would rather use those.

Another possibility: ask our Fortran brethren who support real*4, real*8, real*10, real*16, etc.

Ed


Except you probably have that already.

Reply via email to