Warning: This file is not a C or C++ file. It does not have highlighting.

1//===-- Definition of function macros from math.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_MATH_FUNCTION_MACROS_H
10#define LLVM_LIBC_MACROS_MATH_FUNCTION_MACROS_H
11
12#include "math-macros.h"
13
14#ifndef __cplusplus
15#define issignaling(x) \
16 _Generic((x), \
17 float: issignalingf, \
18 double: issignaling, \
19 long double: issignalingl)(x)
20#define iscanonical(x) \
21 _Generic((x), \
22 float: iscanonicalf, \
23 double: iscanonical, \
24 long double: iscanonicall)(x)
25#endif
26
27#define isfinite(x) __builtin_isfinite(x)
28#define isinf(x) __builtin_isinf(x)
29#define isnan(x) __builtin_isnan(x)
30#define signbit(x) __builtin_signbit(x)
31#define iszero(x) (x == 0)
32#define fpclassify(x) \
33 __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x)
34#define isnormal(x) __builtin_isnormal(x)
35#define issubnormal(x) (fpclassify(x) == FP_SUBNORMAL)
36
37#endif // LLVM_LIBC_MACROS_MATH_FUNCTION_MACROS_H
38

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of libc/include/llvm-libc-macros/math-function-macros.h