]> pd.if.org Git - pdclib/blob - includes/fenv.h
Re-import from Subversion.
[pdclib] / includes / fenv.h
1 /* ----------------------------------------------------------------------------
2  * $Id$
3  * ----------------------------------------------------------------------------
4  * Public Domain C Library - http://pdclib.sourceforge.net
5  * This code is Public Domain. Use, modify, and redistribute at will.
6  * ----------------------------------------------------------------------------
7  * Floating-point environment
8  * --------------------------------------------------------------------------*/
9
10 #ifndef _FENV_H
11 #define _FENV_H _FENV_H
12
13 /* TODO: Documentation */
14
15 /* ----------------------------------------------------------------------------
16  * MACROS
17  * --------------------------------------------------------------------------*/
18
19 #define FE_DIVBYZERO  /* TODO - to __intern.h / __personality.h? */
20 #define FE_INEXACT    /* TODO - to __intern.h / __personality.h? */
21 #define FE_INVALID    /* TODO - to __intern.h / __personality.h? */
22 #define FE_OVERFLOW   /* TODO - to __intern.h / __personality.h? */
23 #define FE_UNDERFLOW  /* TODO - to __intern.h / __personality.h? */
24 #define FE_ALL_EXCEPT /* TODO - to __intern.h / __personality.h? */
25
26 #define FE_DOWNWARD   /* TODO - to __intern.h / __personality.h? */
27 #define FE_TONEAREST  /* TODO - to __intern.h / __personality.h? */
28 #define FE_TOWARDZERO /* TODO - to __intern.h / __personality.h? */
29 #define FE_UPWARD     /* TODO - to __intern.h / __personality.h? */
30
31 #define FE_DFL_ENV    /* TODO - to __intern.h / __personality.h? */
32
33 /* ----------------------------------------------------------------------------
34  * TYPEDEFS
35  * --------------------------------------------------------------------------*/
36
37 typedef fenv_t;    /* TODO - to __intern.h / __personality.h? */
38 typedef fexcept_t; /* TODO - to __intern.h / __personality.h? */
39
40 /* ----------------------------------------------------------------------------
41  * FUNCTIONS
42  * --------------------------------------------------------------------------*/
43
44 int feclearexcept( int exceptions );
45 int fegetexceptflag( fexcept_t * flags, int exceptions );
46 int feraiseexcept( int exceptions );
47 int fesetexceptflag( const fexcept_t * flags, int exceptions );
48 int fetestexcept( int exceptions );
49
50 int fegetround( void );
51 int fesetround( int mode );
52
53 int fegetenv( fenv_t * environment );
54 int feholdexcept( fenv_t * environment );
55 int fesetenv( const fenv_t * environment );
56 int feupdateenv( const fenv_t * environment );
57
58 #endif /* _FENV_H */