Namespaces
Variants
Views
Actions

Standard library header <fenv.h> (C99)

From cppreference.com
< c‎ | header

This header is part of the floating-point environment library.

Contents

[edit] Types

Defined in header <fenv.h>
fenv_t The type representing the entire floating-point environment
fexcept_t The type representing all floating-point status flags collectively

[edit] Functions

clears the specified floating-point status flags
(function) [edit]
determines which of the specified floating-point status flags are set
(function) [edit]
raises the specified floating-point exceptions
(function) [edit]
copies the state of the specified floating-point status flags from or to the floating-point environment
(function) [edit]
gets or sets rounding direction
(function) [edit]
saves or restores the current floating-point environment
(function) [edit]
saves the environment, clears all status flags and ignores all future errors
(function) [edit]
restores the floating-point environment and raises the previously raise exceptions
(function) [edit]

[edit] Macros

floating-point exceptions
(macro constant) [edit]
floating-point rounding direction
(macro constant) [edit]
default floating-point environment
(macro constant) [edit]

[edit] Synopsis

#define __STDC_VERSION_FENV_H__ 202311L
 
#define FE_ALL_EXCEPT         /* see description */
#define FE_DIVBYZERO          /* see description */
#define FE_INEXACT            /* see description */
#define FE_INVALID            /* see description */
#define FE_OVERFLOW           /* see description */
#define FE_UNDERFLOW          /* see description */
#define FE_DOWNWARD           /* see description */
#define FE_TONEARESTFROMZERO  /* see description */
#define FE_TONEAREST          /* see description */
#define FE_TOWARDZERO         /* see description */
#define FE_UPWARD             /* see description */
#define FE_DFL_ENV            /* see description */
#define FE_DFL_MODE           /* see description */
 
#define fenv_t                /* see description */
#define fexcept_t             /* see description */
#define femode_t              /* see description */
 
#pragma STDC FENV_ACCESS      /*on-off-switch*/
#pragma STDC FENV_ROUND       direction
#pragma STDC FENV_ROUND       FE_DYNAMIC
 
// functions
int feclearexcept(int excepts);
int fegetexceptflag(fexcept_t* flagp, int excepts);
int feraiseexcept(int excepts);
int fesetexcept(int excepts);
int fesetexceptflag(const fexcept_t* flagp, int excepts);
int fetestexceptflag(const fexcept_t* flagp, int excepts);
int fetestexcept(int excepts);
int fegetmode(femode_t* modep);
int fegetround(void);
int fesetmode(const femode_t* modep);
int fesetround(int rnd);
int fegetenv(fenv_t* envp);
int feholdexcept(fenv_t* envp);
int fesetenv(const fenv_t* envp);
int feupdateenv(const fenv_t* envp);
 
// Only if the implementation defines __STDC_IEC_60559_DFP__:
#define FE_DEC_DOWNWARD            /* implementation-defined */
#define FE_DEC_TONEARESTFROMZERO   /* implementation-defined */
#define FE_DEC_TONEAREST           /* implementation-defined */
#define FE_DEC_TOWARDZERO          /* implementation-defined */
#define FE_DEC_UPWARD              /* implementation-defined */
 
#pragma STDC FENV_DEC_ROUND /*dec-direction*/
int fe_dec_getround(void);
int fe_dec_setround(int rnd);
 
// Only if the implementation follows the recommended practice from F.2.2:
#define FE_SNANS_ALWAYS_SIGNAL /* implementation-defined */