1 //===-- Definition of macros from float.h ---------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_LIBC_MACROS_FLOAT_MACROS_H 10 #define LLVM_LIBC_MACROS_FLOAT_MACROS_H 11 12 #ifndef FLT_RADIX 13 #define FLT_RADIX __FLT_RADIX__ 14 #endif // FLT_RADIX 15 16 #ifndef FLT_EVAL_METHOD 17 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ 18 #endif // FLT_EVAL_METHOD 19 20 #ifndef FLT_ROUNDS 21 #if __has_builtin(__builtin_flt_rounds) 22 #define FLT_ROUNDS __builtin_flt_rounds() 23 #else 24 #define FLT_ROUNDS 1 25 #endif 26 #endif // FLT_ROUNDS 27 28 #ifndef FLT_DECIMAL_DIG 29 #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ 30 #endif // FLT_DECIMAL_DIG 31 32 #ifndef DBL_DECIMAL_DIG 33 #define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ 34 #endif // DBL_DECIMAL_DIG 35 36 #ifndef LDBL_DECIMAL_DIG 37 #define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ 38 #endif // LDBL_DECIMAL_DIG 39 40 #ifndef DECIMAL_DIG 41 #define DECIMAL_DIG __DECIMAL_DIG__ 42 #endif // DECIMAL_DIG 43 44 #ifndef FLT_DIG 45 #define FLT_DIG __FLT_DIG__ 46 #endif // FLT_DIG 47 48 #ifndef DBL_DIG 49 #define DBL_DIG __DBL_DIG__ 50 #endif // DBL_DIG 51 52 #ifndef LDBL_DIG 53 #define LDBL_DIG __LDBL_DIG__ 54 #endif // LDBL_DIG 55 56 #ifndef FLT_MANT_DIG 57 #define FLT_MANT_DIG __FLT_MANT_DIG__ 58 #endif // FLT_MANT_DIG 59 60 #ifndef DBL_MANT_DIG 61 #define DBL_MANT_DIG __DBL_MANT_DIG__ 62 #endif // DBL_MANT_DIG 63 64 #ifndef LDBL_MANT_DIG 65 #define LDBL_MANT_DIG __LDBL_MANT_DIG__ 66 #endif // LDBL_MANT_DIG 67 68 #ifndef FLT_MIN 69 #define FLT_MIN __FLT_MIN__ 70 #endif // FLT_MIN 71 72 #ifndef DBL_MIN 73 #define DBL_MIN __DBL_MIN__ 74 #endif // DBL_MIN 75 76 #ifndef LDBL_MIN 77 #define LDBL_MIN __LDBL_MIN__ 78 #endif // LDBL_MIN 79 80 #ifndef FLT_MAX 81 #define FLT_MAX __FLT_MAX__ 82 #endif // FLT_MAX 83 84 #ifndef DBL_MAX 85 #define DBL_MAX __DBL_MAX__ 86 #endif // DBL_MAX 87 88 #ifndef LDBL_MAX 89 #define LDBL_MAX __LDBL_MAX__ 90 #endif // LDBL_MAX 91 92 #ifndef FLT_TRUE_MIN 93 #define FLT_TRUE_MIN __FLT_DENORM_MIN__ 94 #endif // FLT_TRUE_MIN 95 96 #ifndef DBL_TRUE_MIN 97 #define DBL_TRUE_MIN __DBL_DENORM_MIN__ 98 #endif // DBL_TRUE_MIN 99 100 #ifndef LDBL_TRUE_MIN 101 #define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ 102 #endif // LDBL_TRUE_MIN 103 104 #ifndef FLT_EPSILON 105 #define FLT_EPSILON __FLT_EPSILON__ 106 #endif // FLT_EPSILON 107 108 #ifndef DBL_EPSILON 109 #define DBL_EPSILON __DBL_EPSILON__ 110 #endif // DBL_EPSILON 111 112 #ifndef LDBL_EPSILON 113 #define LDBL_EPSILON __LDBL_EPSILON__ 114 #endif // LDBL_EPSILON 115 116 #ifndef FLT_MIN_EXP 117 #define FLT_MIN_EXP __FLT_MIN_EXP__ 118 #endif // FLT_MIN_EXP 119 120 #ifndef DBL_MIN_EXP 121 #define DBL_MIN_EXP __DBL_MIN_EXP__ 122 #endif // DBL_MIN_EXP 123 124 #ifndef LDBL_MIN_EXP 125 #define LDBL_MIN_EXP __LDBL_MIN_EXP__ 126 #endif // LDBL_MIN_EXP 127 128 #ifndef FLT_MIN_10_EXP 129 #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ 130 #endif // FLT_MIN_10_EXP 131 132 #ifndef DBL_MIN_10_EXP 133 #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ 134 #endif // DBL_MIN_10_EXP 135 136 #ifndef LDBL_MIN_10_EXP 137 #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ 138 #endif // LDBL_MIN_10_EXP 139 140 #ifndef FLT_MAX_EXP 141 #define FLT_MAX_EXP __FLT_MAX_EXP__ 142 #endif // FLT_MAX_EXP 143 144 #ifndef DBL_MAX_EXP 145 #define DBL_MAX_EXP __DBL_MAX_EXP__ 146 #endif // DBL_MAX_EXP 147 148 #ifndef LDBL_MAX_EXP 149 #define LDBL_MAX_EXP __LDBL_MAX_EXP__ 150 #endif // LDBL_MAX_EXP 151 152 #ifndef FLT_MAX_10_EXP 153 #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ 154 #endif // FLT_MAX_10_EXP 155 156 #ifndef DBL_MAX_10_EXP 157 #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ 158 #endif // DBL_MAX_10_EXP 159 160 #ifndef LDBL_MAX_10_EXP 161 #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ 162 #endif // LDBL_MAX_10_EXP 163 164 #ifndef FLT_HAS_SUBNORM 165 #define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ 166 #endif // FLT_HAS_SUBNORM 167 168 #ifndef DBL_HAS_SUBNORM 169 #define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ 170 #endif // DBL_HAS_SUBNORM 171 172 #ifndef LDBL_HAS_SUBNORM 173 #define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ 174 #endif // LDBL_HAS_SUBNORM 175 176 // TODO: Add FLT16 and FLT128 constants. 177 178 #endif // LLVM_LIBC_MACROS_FLOAT_MACROS_H 179