| //===-- Definition of macros from math.h ----------------------------------===// |
| // |
| // Part of the LLVM Project, 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef __LLVM_LIBC_MACROS_MATH_MACROS_H |
| #define __LLVM_LIBC_MACROS_MATH_MACROS_H |
| |
| #define MATH_ERRNO 1 |
| #define MATH_ERREXCEPT 2 |
| |
| #define HUGE_VAL __builtin_huge_val() |
| #define INFINITY __builtin_inf() |
| #define NAN __builtin_nanf("") |
| |
| #define FP_ILOGB0 (-__INT_MAX__ - 1) |
| #define FP_ILOGBNAN __INT_MAX__ |
| |
| #define isfinite(x) __builtin_isfinite(x) |
| #define isinf(x) __builtin_isinf(x) |
| #define isnan(x) __builtin_isnan(x) |
| |
| #ifdef __FAST_MATH__ |
| #define math_errhandling 0 |
| #elif defined __NO_MATH_ERRNO__ |
| #define math_errhandling (MATH_ERREXCEPT) |
| #else |
| #define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT) |
| #endif |
| |
| #endif // __LLVM_LIBC_MACROS_MATH_MACROS_H |