codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===---------------------------- math.h ----------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX_FENV_H11#define _LIBCUDACXX_FENV_H12 13 14/*15 fenv.h synopsis16 17This entire header is C99 / C++0X18 19Macros:20 21 FE_DIVBYZERO22 FE_INEXACT23 FE_INVALID24 FE_OVERFLOW25 FE_UNDERFLOW26 FE_ALL_EXCEPT27 FE_DOWNWARD28 FE_TONEAREST29 FE_TOWARDZERO30 FE_UPWARD31 FE_DFL_ENV32 33Types:34 35 fenv_t36 fexcept_t37 38int feclearexcept(int excepts);39int fegetexceptflag(fexcept_t* flagp, int excepts);40int feraiseexcept(int excepts);41int fesetexceptflag(const fexcept_t* flagp, int excepts);42int fetestexcept(int excepts);43int fegetround();44int fesetround(int round);45int fegetenv(fenv_t* envp);46int feholdexcept(fenv_t* envp);47int fesetenv(const fenv_t* envp);48int feupdateenv(const fenv_t* envp);49 50 51*/52 53#include <__config>54 55#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)56# pragma GCC system_header57#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)58# pragma clang system_header59#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)60# pragma system_header61#endif // no system header62 63#include_next <fenv.h>64 65#ifdef __cplusplus66 67extern "C++" {68 69#ifdef feclearexcept70#undef feclearexcept71#endif72 73#ifdef fegetexceptflag74#undef fegetexceptflag75#endif76 77 78#ifdef feraiseexcept79#undef feraiseexcept80#endif81 82#ifdef fesetexceptflag83#undef fesetexceptflag84#endif85 86 87#ifdef fetestexcept88#undef fetestexcept89#endif90 91#ifdef fegetround92#undef fegetround93#endif94 95#ifdef fesetround96#undef fesetround97#endif98 99#ifdef fegetenv100#undef fegetenv101#endif102 103#ifdef feholdexcept104#undef feholdexcept105#endif106 107 108#ifdef fesetenv109#undef fesetenv110#endif111 112#ifdef feupdateenv113#undef feupdateenv114#endif115 116} // extern "C++"117 118#endif // defined(__cplusplus)119 120#endif // _LIBCUDACXX_FENV_H121 