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