]>
Commit | Line | Data |
---|---|---|
1 | #ifndef _FENV_H | |
2 | #include <math/fenv.h> | |
3 | ||
4 | #ifndef _ISOMAC | |
5 | # include <stdbool.h> | |
6 | /* Now define the internal interfaces. */ | |
7 | ||
8 | extern int __feclearexcept (int __excepts); | |
9 | extern int __fegetexcept (void); | |
10 | extern int __fegetexceptflag (fexcept_t *__flagp, int __excepts); | |
11 | extern int __feraiseexcept (int __excepts); | |
12 | extern int __fesetexceptflag (const fexcept_t *__flagp, int __excepts); | |
13 | extern int __fegetenv (fenv_t *__envp); | |
14 | extern int __fesetenv (const fenv_t *__envp); | |
15 | extern int __feupdateenv (const fenv_t *__envp); | |
16 | extern __typeof (fegetround) __fegetround __attribute_pure__; | |
17 | extern __typeof (feholdexcept) __feholdexcept; | |
18 | extern __typeof (fesetround) __fesetround; | |
19 | ||
20 | libm_hidden_proto (feraiseexcept) | |
21 | libm_hidden_proto (__feraiseexcept) | |
22 | libm_hidden_proto (fegetenv) | |
23 | libm_hidden_proto (__fegetenv) | |
24 | libm_hidden_proto (fegetround) | |
25 | libm_hidden_proto (__fegetround) | |
26 | libm_hidden_proto (fesetenv) | |
27 | libm_hidden_proto (__fesetenv) | |
28 | libm_hidden_proto (fesetround) | |
29 | libm_hidden_proto (__fesetround) | |
30 | libm_hidden_proto (feholdexcept) | |
31 | libm_hidden_proto (__feholdexcept) | |
32 | libm_hidden_proto (feupdateenv) | |
33 | libm_hidden_proto (__feupdateenv) | |
34 | libm_hidden_proto (fetestexcept) | |
35 | libm_hidden_proto (feclearexcept) | |
36 | ||
37 | /* Rounding mode context. This allows functions to set/restore rounding mode | |
38 | only when the desired rounding mode is different from the current rounding | |
39 | mode. */ | |
40 | struct rm_ctx | |
41 | { | |
42 | fenv_t env; | |
43 | bool updated_status; | |
44 | }; | |
45 | #endif | |
46 | ||
47 | #endif |