64 lines
1.0 KiB
C
64 lines
1.0 KiB
C
|
/*
|
||
|
* Copyright (c) 2005-2019 Rich Felker, et al.
|
||
|
*
|
||
|
* Part of MUSL, released under the MIT license.
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _FENV_H_
|
||
|
#define _FENV_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#if __HAVE_68881__ || __mcffpu__
|
||
|
|
||
|
#define FE_INEXACT 8
|
||
|
#define FE_DIVBYZERO 16
|
||
|
#define FE_UNDERFLOW 32
|
||
|
#define FE_OVERFLOW 64
|
||
|
#define FE_INVALID 128
|
||
|
|
||
|
#define FE_ALL_EXCEPT 0xf8
|
||
|
|
||
|
#define FE_TONEAREST 0
|
||
|
#define FE_TOWARDZERO 16
|
||
|
#define FE_DOWNWARD 32
|
||
|
#define FE_UPWARD 48
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define FE_ALL_EXCEPT 0
|
||
|
#define FE_TONEAREST 0
|
||
|
|
||
|
#endif
|
||
|
|
||
|
typedef unsigned fexcept_t;
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned __control_register, __status_register, __instruction_address;
|
||
|
} fenv_t;
|
||
|
|
||
|
#define FE_DFL_ENV ((const fenv_t *) -1)
|
||
|
|
||
|
int feclearexcept(int);
|
||
|
int fegetexceptflag(fexcept_t *, int);
|
||
|
int feraiseexcept(int);
|
||
|
int fesetexceptflag(const fexcept_t *, int);
|
||
|
int fetestexcept(int);
|
||
|
|
||
|
int fegetround(void);
|
||
|
int fesetround(int);
|
||
|
|
||
|
int fegetenv(fenv_t *);
|
||
|
int feholdexcept(fenv_t *);
|
||
|
int fesetenv(const fenv_t *);
|
||
|
int feupdateenv(const fenv_t *);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
#endif
|
||
|
|