The <float.h> header file has the following contents:
#ifndef __FLOAT_LOADED #define __FLOAT_LOADED 1 /* * <float.h> - Characteristics of floating types * * Copyright (c) 1995 by Digital Equipment Corporation. All rights reserved. * * DEC C for OpenVMS VAX and OpenVMS Alpha * DEC C++ for OpenVMS VAX and OpenVMS Alpha */ #if defined(__DECC) || defined(__DECCXX) #pragma __nostandard /* This file uses non-ANSI-Standard features */ #else #pragma nostandard #endif #ifdef __cplusplus extern "C" { #endif #ifndef __G_FLOAT # if defined(__DECC) || defined(__DECCXX) # error "__G_FLOAT must be defined" # else # ifdef CC$gfloat # define __G_FLOAT CC$gfloat # else # error "Neither __G_FLOAT nor CC$gfloat defined" # endif # endif #endif #ifndef __IEEE_FLOAT # define __IEEE_FLOAT 0 #endif #ifndef __X_FLOAT # define __X_FLOAT 0 #endif #ifndef __D_FLOAT # define __D_FLOAT ((!__G_FLOAT) && (!__IEEE_FLOAT)) #endif /* Rounding mode for floating point addition: */ #ifdef __BIASED_FLT_ROUNDS # define FLT_ROUNDS (__BIASED_FLT_ROUNDS - 1) /* use compiler-generated value, if present */ #else # define FLT_ROUNDS 1 #endif /* Radix of exponent representation: */ #define FLT_RADIX 2 /* Number of FLT_RADIX digits in the mantissa including the hidden bit: */ #define __F_FLT_MANT_DIG 24 #define __G_DBL_MANT_DIG 53 #define __S_FLT_MANT_DIG 24 #define __T_FLT_MANT_DIG 53 #define __X_FLT_MANT_DIG 113 #define FLT_MANT_DIG 24 #if __G_FLOAT || __IEEE_FLOAT # define DBL_MANT_DIG 53 #else # define DBL_MANT_DIG 56 #endif #if __X_FLOAT # define LDBL_MANT_DIG 113 #else # define LDBL_MANT_DIG DBL_MANT_DIG #endif /* Number of decimal digits of precision: */ #define __F_FLT_DIG 6 #define __G_FLT_DIG 15 #define __S_FLT_DIG 6 #define __T_FLT_DIG 15 #define __X_FLT_DIG 33 #define FLT_DIG 6 #if __G_FLOAT || __IEEE_FLOAT # define DBL_DIG 15 #else # define DBL_DIG 16 #endif #if __X_FLOAT # define LDBL_DIG 33 #else # define LDBL_DIG DBL_DIG #endif /* Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalized floating-point number: */ #define __F_FLT_MIN_EXP (-127) #define __G_FLT_MIN_EXP (-1023) #define __S_FLT_MIN_EXP (-125) #define __T_FLT_MIN_EXP (-1021) #define __X_FLT_MIN_EXP (-16381) #if __IEEE_FLOAT # define FLT_MIN_EXP (-125) #else # define FLT_MIN_EXP (-127) #endif #if __IEEE_FLOAT # define DBL_MIN_EXP (-1021) #elif __G_FLOAT # define DBL_MIN_EXP (-1023) #else # define DBL_MIN_EXP (-127) #endif #if __X_FLOAT # define LDBL_MIN_EXP (-16381) #else # define LDBL_MIN_EXP DBL_MIN_EXP #endif /* Minimum negative integer such that 10 raised to that power is in the range of normalized floating-point numbers: */ #define __F_FLT_MIN_10_EXP (-38) #define __G_FLT_MIN_10_EXP (-308) #define __S_FLT_MIN_10_EXP (-37) #define __T_FLT_MIN_10_EXP (-307) #define __X_FLT_MIN_10_EXP (-4931) #ifdef __IEEE_FLOAT # define FLT_MIN_10_EXP (-37) #else # define FLT_MIN_10_EXP (-38) #endif #if __IEEE_FLOAT # define DBL_MIN_10_EXP (-307) #elif __G_FLOAT # define DBL_MIN_10_EXP (-308) #else # define DBL_MIN_10_EXP (-38) #endif #if __X_FLOAT # define LDBL_MIN_10_EXP (-4931) #else # define LDBL_MIN_10_EXP DBL_MIN_10_EXP #endif /* Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite floating point number: */ #define __F_FLT_MAX_EXP 127 #define __G_FLT_MAX_EXP 1023 #define __S_FLT_MAX_EXP 128 #define __T_FLT_MAX_EXP 1024 #define __X_FLT_MAX_EXP 16384 #if __IEEE_FLOAT # define FLT_MAX_EXP 128 #else # define FLT_MAX_EXP 127 #endif #if __IEEE_FLOAT # define DBL_MAX_EXP 1024 #elif __G_FLOAT # define DBL_MAX_EXP 1023 #else # define DBL_MAX_EXP 127 #endif #if __X_FLOAT # define LDBL_MAX_EXP 16384 #else # define LDBL_MAX_EXP DBL_MAX_EXP #endif /* Maximum integer such that 10 raised to that power is in the range of representable finite floating-point numbers: */ #define __F_FLT_MAX_10_EXP 38 #define __G_FLT_MAX_10_EXP 307 #define __S_FLT_MAX_10_EXP 38 #define __T_FLT_MAX_10_EXP 308 #define __X_FLT_MAX_10_EXP 4932 #define FLT_MAX_10_EXP 38 #if __IEEE_FLOAT # define DBL_MAX_10_EXP 308 #elif __G_FLOAT # define DBL_MAX_10_EXP 307 #else # define DBL_MAX_10_EXP 38 #endif #if __X_FLOAT # define LDBL_MAX_10_EXP 4932 #else # define LDBL_MAX_10_EXP DBL_MAX_10_EXP #endif /* Maximum representable finite floating-point number: */ #define __F_FLT_MAX 1.7014117e+38f #define __G_FLT_MAX 8.98846567431157854e+307 #ifdef __ALPHA #define __S_FLT_MAX 3.40282347e+38f #define __T_FLT_MAX 1.79769313486231570e+308 #define __X_FLT_MAX 1.189731495357231765085759326628007016196477e4932l #endif #if __IEEE_FLOAT # define FLT_MAX 3.40282347e+38f #else # define FLT_MAX 1.7014117e+38f #endif #if __IEEE_FLOAT # define DBL_MAX 1.79769313486231570e+308 #elif __G_FLOAT # define DBL_MAX 8.98846567431157854e+307 #else # ifndef __ALPHA # define DBL_MAX 1.70141183460469229e+38 # else # define DBL_MAX 1.70141183460469213e+38 # endif #endif #if __X_FLOAT # define LDBL_MAX 1.189731495357231765085759326628007016196477e4932l #else # define LDBL_MAX DBL_MAX #endif /* The difference between 1.0 and the least value greater than 1.0 that is representable in the given floating-point type (i.e. 1.0 + epsilon != 1.0): */ #define __F_FLT_EPSILON ((float)(1.0 / (1 << 23))) #define __G_FLT_EPSILON (1.0 / (1 << 30) / (1 << 22)) #ifdef __ALPHA #define __S_FLT_EPSILON 1.19209290e-07f #define __T_FLT_EPSILON 2.2204460492503131e-16 #define __X_FLT_EPSILON 1.9259299443872358530559779425849273185381e-34l #endif #if __IEEE_FLOAT # define FLT_EPSILON 1.19209290e-07f #else # define FLT_EPSILON ((float)(1.0 / (1 << 23))) #endif #if __IEEE_FLOAT # define DBL_EPSILON 2.2204460492503131e-16 #elif __G_FLOAT || (__D_FLOAT && defined(__ALPHA)) # define DBL_EPSILON (1.0 / (1 << 20) / (1 << 16) / (1 << 16)) #else # define DBL_EPSILON (1.0 / (1 << 23) / (1 << 16) / (1 << 16)) #endif #if __X_FLOAT # define LDBL_EPSILON 1.9259299443872358530559779425849273185381e-34l #else # define LDBL_EPSILON DBL_EPSILON #endif /* Minimum normalized positive floating-point number: */ #define __F_FLT_MIN ((float) 2.93873587705571877e-39) #define __G_FLT_MIN 5.56268464626800346e-309 #ifdef __ALPHA #define __S_FLT_MIN 1.17549435e-38f #define __T_FLT_MIN 2.2250738585072014e-308 #define __X_FLT_MIN ((long double) 3.3621031431120935062626778173217526025981e-4932l) #endif #if __IEEE_FLOAT # define FLT_MIN 1.17549435e-38f #else # define FLT_MIN ((float)2.93873587705571877e-39) #endif #if __IEEE_FLOAT # define DBL_MIN 2.2250738585072014e-308 #elif __G_FLOAT # define DBL_MIN 5.56268464626800346e-309 #else # define DBL_MIN 2.93873587705571877e-39 #endif #if __X_FLOAT # define LDBL_MIN 3.3621031431120935062626778173217526025981e-4932l #else # define LDBL_MIN DBL_MIN #endif #ifdef __cplusplus } #endif #if defined(__DECC) || defined(__DECCXX) #pragma __standard /* This file uses non-ANSI-Standard features */ #else #pragma standard #endif #endif /* __FLOAT_LOADED */