It should have been defined in <float.h>. Is that include file not found? You 
might check to ensure it was defined there.


On Apr 12, 2013, at 7:09 AM, Ray Sheppard <rshep...@iu.edu> wrote:

> Hi,
>  I am sorry to bother everyone.  I have had no trouble building 1.6.3 with 
> the Intel compiler. Now I am having to repeat the exercise for GNU.  In 
> opal/util/arch.h (about line 260) is the function below. I am getting an 
> error that LDBL_MANT_DIG is not declared.  I can not seem to find where it is 
> declared.  Any hints would be appreciated.  Thanks.
>                                         Ray
> 
> 
> static inline int32_t opal_arch_ldisintel( void )
> {
>    long double ld = 2.0;
>    int i, j;
>    uint32_t* pui = (uint32_t*)(void*)&ld;
> 
>    j = LDBL_MANT_DIG / 32;
>    i = (LDBL_MANT_DIG % 32) - 1;
>    if( opal_arch_isbigendian() ) { /* big endian */
>        j = (sizeof(long double) / sizeof(unsigned int)) - j;
>        if( i < 0 ) {
>            i = 31;
>            j = j+1;
>        }
>    } else {
>        if( i < 0 ) {
>            i = 31;
>            j = j-1;
>        }
>    }
>    return (pui[j] & (1 << i) ? 1 : 0);
> }
> 
> 
> Function is described:
> /* we must find which representation of long double is used
> * intel or sparc. Both of them represent the long doubles using a close to
> * IEEE representation (seeeeeee..emmm...m) where the mantissa look like
> * 1.????. For the intel representaion the 1 is explicit, and for the sparc
> * the first one is implicit. If we take the number 2.0 the exponent is 1
> * and the mantissa is 1.0 (the sign of course should be 0). So if we check
> * for the first one in the binary representation of the number, we will
> * find the bit from the exponent, so the next one should be the begining
> * of the mantissa. If it's 1 then we have an intel representaion, if not
> * we have a sparc one. QED
> */
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to