| // Copyright 2026 The IREE Authors |
| // |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| // Freestanding <float.h> for wasm32 (IEEE 754). |
| |
| #ifndef IREE_WASM_LIBC_FLOAT_H_ |
| #define IREE_WASM_LIBC_FLOAT_H_ |
| |
| #define FLT_RADIX 2 |
| #define FLT_ROUNDS 1 // Round to nearest. |
| |
| #define FLT_EVAL_METHOD 0 // Each type evaluated to itself. |
| |
| #define DECIMAL_DIG 21 |
| |
| // float: IEEE 754 binary32. |
| #define FLT_MANT_DIG 24 |
| #define FLT_DIG 6 |
| #define FLT_MIN_EXP (-125) |
| #define FLT_MIN_10_EXP (-37) |
| #define FLT_MAX_EXP 128 |
| #define FLT_MAX_10_EXP 38 |
| #define FLT_MIN 1.17549435e-38F |
| #define FLT_MAX 3.40282347e+38F |
| #define FLT_EPSILON 1.19209290e-07F |
| #define FLT_TRUE_MIN 1.40129846e-45F |
| #define FLT_DECIMAL_DIG 9 |
| #define FLT_HAS_SUBNORM 1 |
| |
| // double: IEEE 754 binary64. |
| #define DBL_MANT_DIG 53 |
| #define DBL_DIG 15 |
| #define DBL_MIN_EXP (-1021) |
| #define DBL_MIN_10_EXP (-307) |
| #define DBL_MAX_EXP 1024 |
| #define DBL_MAX_10_EXP 308 |
| #define DBL_MIN 2.2250738585072014e-308 |
| #define DBL_MAX 1.7976931348623157e+308 |
| #define DBL_EPSILON 2.2204460492503131e-16 |
| #define DBL_TRUE_MIN 5.0e-324 |
| #define DBL_DECIMAL_DIG 17 |
| #define DBL_HAS_SUBNORM 1 |
| |
| // long double: on wasm32, long double is IEEE 754 binary128. |
| #define LDBL_MANT_DIG 113 |
| #define LDBL_DIG 33 |
| #define LDBL_MIN_EXP (-16381) |
| #define LDBL_MIN_10_EXP (-4931) |
| #define LDBL_MAX_EXP 16384 |
| #define LDBL_MAX_10_EXP 4932 |
| #define LDBL_MIN 3.36210314311209350626267781732175260e-4932L |
| #define LDBL_MAX 1.18973149535723176502126385303097021e+4932L |
| #define LDBL_EPSILON 1.92592994438723585305597794258492732e-34L |
| #define LDBL_TRUE_MIN 6.47517511943802511092443895822764655e-4966L |
| #define LDBL_DECIMAL_DIG 36 |
| #define LDBL_HAS_SUBNORM 1 |
| |
| #endif // IREE_WASM_LIBC_FLOAT_H_ |