1*4d6fc14bSjoerg // -*- C++ -*- 2*4d6fc14bSjoerg //===---------------------------- math.h ----------------------------------===// 3*4d6fc14bSjoerg // 4*4d6fc14bSjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*4d6fc14bSjoerg // See https://llvm.org/LICENSE.txt for license information. 6*4d6fc14bSjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*4d6fc14bSjoerg // 8*4d6fc14bSjoerg //===----------------------------------------------------------------------===// 9*4d6fc14bSjoerg 10*4d6fc14bSjoerg #ifndef _LIBCPP_FENV_H 11*4d6fc14bSjoerg #define _LIBCPP_FENV_H 12*4d6fc14bSjoerg 13*4d6fc14bSjoerg 14*4d6fc14bSjoerg /* 15*4d6fc14bSjoerg fenv.h synopsis 16*4d6fc14bSjoerg 17*4d6fc14bSjoerg This entire header is C99 / C++0X 18*4d6fc14bSjoerg 19*4d6fc14bSjoerg Macros: 20*4d6fc14bSjoerg 21*4d6fc14bSjoerg FE_DIVBYZERO 22*4d6fc14bSjoerg FE_INEXACT 23*4d6fc14bSjoerg FE_INVALID 24*4d6fc14bSjoerg FE_OVERFLOW 25*4d6fc14bSjoerg FE_UNDERFLOW 26*4d6fc14bSjoerg FE_ALL_EXCEPT 27*4d6fc14bSjoerg FE_DOWNWARD 28*4d6fc14bSjoerg FE_TONEAREST 29*4d6fc14bSjoerg FE_TOWARDZERO 30*4d6fc14bSjoerg FE_UPWARD 31*4d6fc14bSjoerg FE_DFL_ENV 32*4d6fc14bSjoerg 33*4d6fc14bSjoerg Types: 34*4d6fc14bSjoerg 35*4d6fc14bSjoerg fenv_t 36*4d6fc14bSjoerg fexcept_t 37*4d6fc14bSjoerg 38*4d6fc14bSjoerg int feclearexcept(int excepts); 39*4d6fc14bSjoerg int fegetexceptflag(fexcept_t* flagp, int excepts); 40*4d6fc14bSjoerg int feraiseexcept(int excepts); 41*4d6fc14bSjoerg int fesetexceptflag(const fexcept_t* flagp, int excepts); 42*4d6fc14bSjoerg int fetestexcept(int excepts); 43*4d6fc14bSjoerg int fegetround(); 44*4d6fc14bSjoerg int fesetround(int round); 45*4d6fc14bSjoerg int fegetenv(fenv_t* envp); 46*4d6fc14bSjoerg int feholdexcept(fenv_t* envp); 47*4d6fc14bSjoerg int fesetenv(const fenv_t* envp); 48*4d6fc14bSjoerg int feupdateenv(const fenv_t* envp); 49*4d6fc14bSjoerg 50*4d6fc14bSjoerg 51*4d6fc14bSjoerg */ 52*4d6fc14bSjoerg 53*4d6fc14bSjoerg #include <__config> 54*4d6fc14bSjoerg 55*4d6fc14bSjoerg #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 56*4d6fc14bSjoerg #pragma GCC system_header 57*4d6fc14bSjoerg #endif 58*4d6fc14bSjoerg 59*4d6fc14bSjoerg #include_next <fenv.h> 60*4d6fc14bSjoerg 61*4d6fc14bSjoerg #ifdef __cplusplus 62*4d6fc14bSjoerg 63*4d6fc14bSjoerg extern "C++" { 64*4d6fc14bSjoerg 65*4d6fc14bSjoerg #ifdef feclearexcept 66*4d6fc14bSjoerg #undef feclearexcept 67*4d6fc14bSjoerg #endif 68*4d6fc14bSjoerg 69*4d6fc14bSjoerg #ifdef fegetexceptflag 70*4d6fc14bSjoerg #undef fegetexceptflag 71*4d6fc14bSjoerg #endif 72*4d6fc14bSjoerg 73*4d6fc14bSjoerg 74*4d6fc14bSjoerg #ifdef feraiseexcept 75*4d6fc14bSjoerg #undef feraiseexcept 76*4d6fc14bSjoerg #endif 77*4d6fc14bSjoerg 78*4d6fc14bSjoerg #ifdef fesetexceptflag 79*4d6fc14bSjoerg #undef fesetexceptflag 80*4d6fc14bSjoerg #endif 81*4d6fc14bSjoerg 82*4d6fc14bSjoerg 83*4d6fc14bSjoerg #ifdef fetestexcept 84*4d6fc14bSjoerg #undef fetestexcept 85*4d6fc14bSjoerg #endif 86*4d6fc14bSjoerg 87*4d6fc14bSjoerg #ifdef fegetround 88*4d6fc14bSjoerg #undef fegetround 89*4d6fc14bSjoerg #endif 90*4d6fc14bSjoerg 91*4d6fc14bSjoerg #ifdef fesetround 92*4d6fc14bSjoerg #undef fesetround 93*4d6fc14bSjoerg #endif 94*4d6fc14bSjoerg 95*4d6fc14bSjoerg #ifdef fegetenv 96*4d6fc14bSjoerg #undef fegetenv 97*4d6fc14bSjoerg #endif 98*4d6fc14bSjoerg 99*4d6fc14bSjoerg #ifdef feholdexcept 100*4d6fc14bSjoerg #undef feholdexcept 101*4d6fc14bSjoerg #endif 102*4d6fc14bSjoerg 103*4d6fc14bSjoerg 104*4d6fc14bSjoerg #ifdef fesetenv 105*4d6fc14bSjoerg #undef fesetenv 106*4d6fc14bSjoerg #endif 107*4d6fc14bSjoerg 108*4d6fc14bSjoerg #ifdef feupdateenv 109*4d6fc14bSjoerg #undef feupdateenv 110*4d6fc14bSjoerg #endif 111*4d6fc14bSjoerg 112*4d6fc14bSjoerg } // extern "C++" 113*4d6fc14bSjoerg 114*4d6fc14bSjoerg #endif // defined(__cplusplus) 115*4d6fc14bSjoerg 116*4d6fc14bSjoerg #endif // _LIBCPP_FENV_H 117