On Tue, Sep 14, 2021 at 05:17:04PM +0200, Andreas Schwab wrote:
> On Sep 14 2021, Gerald Pfeifer wrote:
> 
> >   #define __LDBL_MANT_DIG__ 53
> >   #define __LDBL_DIG__ 15
> >   #define __LDBL_MIN_EXP__ (-16381)
> >   #define __LDBL_MIN_10_EXP__ (-4931)
> >   #define __LDBL_MAX_EXP__ 16384
> >   #define __LDBL_MAX_10_EXP__ 4932
> >   #define __LDBL_DECIMAL_DIG__ 17
> >   #define __LDBL_MAX__ 1.18973149535723163299902939989638351e+4932L
> >   #define __LDBL_NORM_MAX__ 1.18973149535723163299902939989638351e+4932L
> >   #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
> >   #define __LDBL_EPSILON__ 2.22044604925031308084726333618164062e-16L
> >   #define __LDBL_DENORM_MIN__ 7.46536864129530798597817535205257178e-4948L
> >   #define __LDBL_HAS_DENORM__ 1
> >   #define __LDBL_HAS_INFINITY__ 1
> >   #define __LDBL_HAS_QUIET_NAN__ 1
> >   #define __LDBL_IS_IEC_60559__ 2
> 
> That looks like range of extended float, but rounded to double float
> precision.

Yeah.
real.c has:
/* The following caters to i386 systems that set the rounding precision
   to 53 bits instead of 64, e.g. FreeBSD.  */
const struct real_format ieee_extended_intel_96_round_53_format =
But, wonder why it didn't work with the float.h include then, because
https://github.com/lattera/freebsd/blob/master/sys/x86/include/float.h
seems to define LDBL_MANT_DIG to 64, LDBL_MIN_EXP to (-16381) and
LDBL_MAX_EXP to 16384 and that case was handled in ISO_Fortran_binding.h.

        Jakub

Reply via email to