#!/bin/sh ${CPP:-cpp} < #define __STDC_WANT_DEC_FP__ #define __STDC_VERSION__ 201112L #include "General floating-point properties" "---------------------------------" "FLT_RADIX" FLT_RADIX "radix of floating-point representation" #define fr0 "0 round to zero" #define fr1 "1 round to nearest" #define fr2 "2 round to +infinity" #define fr3 "3 round to -infinity" #define fe0 "0 evaluate at precision of data type" #define fe1 "1 evaluate at double precision at least" #define fe2 "2 evaluate at long double precision" #define glue(a,b) a ## b #define iglue(a,b) glue(a,b) "The following two are the default, but may be changed at runtime:" "FLT_ROUNDS" iglue(fr,FLT_ROUNDS) "FLT_EVAL_METHOD" iglue(fe,FLT_EVAL_METHOD) "" "Single precision floating-point" "-------------------------------" "FLT_EPSILON" FLT_EPSILON "smallest number that has an effect when added to 1" "FLT_MIN" FLT_MIN "minimum normalised representable number" "FLT_MAX" FLT_MAX "maximum representable number" "FLT_MANT_DIG" FLT_MANT_DIG "precision in terms of FLT_RADIX-base digits" "FLT_DIG" FLT_DIG "precision in terms of decimal digits" "FLT_DECIMAL_DIG" FLT_DECIMAL_DIG "decimal digits needed to represent number accurately" "FLT_MIN_EXP" FLT_MIN_EXP "minimum FLT_RADIX-base exponent of normalised number" "FLT_MIN_10_EXP" FLT_MIN_10_EXP "minimum decimal exponent of normalised number" "FLT_MAX_EXP" FLT_MAX_EXP "maximum FLT_RADIX-base exponent" "FLT_MAX_10_EXP" FLT_MAX_10_EXP "maximum decimal exponent" "FLT_HAS_SUBNORM" FLT_HAS_SUBNORM "subnormal numbers supported?" "FLT_TRUE_MIN" FLT_TRUE_MIN "minimum positive value including subnormals" "" "Double precision floating-point" "-------------------------------" "DBL_EPSILON" DBL_EPSILON "smallest number that has an effect when added to 1" "DBL_MIN" DBL_MIN "minimum normalised representable number" "DBL_MAX" DBL_MAX "maximum representable number" "DBL_MANT_DIG" DBL_MANT_DIG "precision in terms of FLT_RADIX-base digits" "DBL_DIG" DBL_DIG "precision in terms of decimal digits" "DBL_DECIMAL_DIG" DBL_DECIMAL_DIG "decimal digits needed to represent number accurately" "DBL_MIN_EXP" DBL_MIN_EXP "minimum FLT_RADIX-base exponent of normalised number" "DBL_MIN_10_EXP" DBL_MIN_10_EXP "minimum decimal exponent of normalised number" "DBL_MAX_EXP" DBL_MAX_EXP "maximum FLT_RADIX-base exponent" "DBL_MAX_10_EXP" DBL_MAX_10_EXP "maximum decimal exponent" "DBL_HAS_SUBNORM" DBL_HAS_SUBNORM "subnormal numbers supported?" "DBL_TRUE_MIN" DBL_TRUE_MIN "minimum positive value including subnormals" "" "Long double precision floating-point" "------------------------------------" "LDBL_EPSILON" LDBL_EPSILON "smallest number that has an effect when added to 1" "LDBL_MIN" LDBL_MIN "minimum normalised representable number" "LDBL_MAX" LDBL_MAX "maximum representable number" "LDBL_MANT_DIG" LDBL_MANT_DIG "precision in terms of FLT_RADIX-base digits" "LDBL_DIG" LDBL_DIG "precision in terms of decimal digits" "LDBL_DECIMAL_DIG" LDBL_DECIMAL_DIG "decimal digits needed to represent number accurately" "LDBL_MIN_EXP" LDBL_MIN_EXP "minimum FLT_RADIX-base exponent of normalised number" "LDBL_MIN_10_EXP" LDBL_MIN_10_EXP "minimum decimal exponent of normalised number" "LDBL_MAX_EXP" LDBL_MAX_EXP "maximum FLT_RADIX-base exponent" "LDBL_MAX_10_EXP" LDBL_MAX_10_EXP "maximum decimal exponent" "LDBL_HAS_SUBNORM" LDBL_HAS_SUBNORM "subnormal numbers supported?" "LDBL_TRUE_MIN" LDBL_TRUE_MIN "minimum positive value including subnormals" "" "Decimal floating-point types" "----------------------------" #define fde0 "0 evaluate at precision of data type" #define fde1 "1 evaluate at _Decimal64 precision at least" #define fde2 "2 evaluate at _Decimal128 precision" "DEC_EVAL_METHOD" iglue(fde,DEC_EVAL_METHOD) "" "DEC32_EPSILON" DEC32_EPSILON "smallest number that has an effect when added to 1" "DEC32_MIN" DEC32_MIN "minimum normalised representable number" "DEC32_MAX" DEC32_MAX "maximum representable number" "DEC32_MANT_DIG" DEC32_MANT_DIG "precision in terms of decimal digits" "DEC32_MIN_EXP" DEC32_MIN_EXP "minimum decimal exponent of normalised number" "DEC32_MAX_EXP" DEC32_MAX_EXP "maximum decimal exponent" "DEC32_SUBNORMAL_MIN" DEC32_SUBNORMAL_MIN "minimum positive value including subnormals" "" "DEC64_EPSILON" DEC64_EPSILON "smallest number that has an effect when added to 1" "DEC64_MANT_DIG" DEC64_MANT_DIG "precision in terms of decimal digits" "DEC64_MIN_EXP" DEC64_MIN_EXP "minimum decimal exponent of normalised number" "DEC64_MAX_EXP" DEC64_MAX_EXP "maximum decimal exponent" "DEC64_MIN" DEC64_MIN "minimum normalised representable number" "DEC64_MAX" DEC64_MAX "maximum representable number" "DEC64_SUBNORMAL_MIN" DEC64_SUBNORMAL_MIN "minimum positive value including subnormals" "" "DEC128_EPSILON" DEC128_EPSILON "smallest number that has an effect when added to 1" "DEC128_MANT_DIG" DEC128_MANT_DIG "precision in terms of decimal digits" "DEC128_MIN_EXP" DEC128_MIN_EXP "minimum decimal exponent of normalised number" "DEC128_MAX_EXP" DEC128_MAX_EXP "maximum decimal exponent" "DEC128_MIN" DEC128_MIN "minimum normalised representable number" "DEC128_MAX" DEC128_MAX "maximum representable number" "DEC128_SUBNORMAL_MIN" DEC128_SUBNORMAL_MIN "minimum positive value including subnormals" "" "Fixed-point data type limits" "----------------------------" "(Use fixed-width data types from stdint.h for portable code instead of relying on this)" "" "CHAR_BIT" CHAR_BIT "number of bits in a char" "CHAR_MIN" CHAR_MIN "minimum value of a char" "CHAR_MAX" CHAR_MAX "maximum value of a char" "SCHAR_MIN" SCHAR_MIN "minimum value of a signed char" "SCHAR_MAX" SCHAR_MAX "maximum value of a signed char" "UCHAR_MAX" UCHAR_MAX "maximum value of an unsigned char" "" "SHRT_MIN" SHRT_MIN "minimum value of a signed short" "SHRT_MAX" SHRT_MAX "maximum value of a signed short" "USHRT_MAX" USHRT_MAX "maximum value of an unsigned short" "" "INT_MIN" INT_MIN "minimum value of a signed int" "INT_MAX" INT_MAX "maximum value of a signed int" "UINT_MAX" UINT_MAX "maximum value of an unsigned int" "" "LONG_MIN" LONG_MIN "minimum value of a signed long" "LONG_MAX" LONG_MAX "maximum value of a signed long" "ULONG_MAX" ULONG_MAX "maximum value of an unsigned long" "" "LLONG_MIN" LLONG_MIN "minimum value of a signed long long" "LLONG_MAX" LLONG_MAX "maximum value of a signed long long" "ULLONG_MAX" ULLONG_MAX "maximum value of an unsigned long long" "" EOF