/*  Copyright (C) 2015  Povilas Kanapickas <povilas@radix.lt>

    This file is part of cppreference-doc

    This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
    Unported License. To view a copy of this license, visit
    http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
    Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3 or
    any later version published by the Free Software Foundation; with no
    Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
*/

#ifndef CPPREFERENCE_CFENV_H
#define CPPREFERENCE_CFENV_H

namespace std {

#define FE_DIVBYZERO 0
#define FE_INEXACT 0
#define FE_INVALID 0
#define FE_OVERFLOW 0
#define FE_UNDERFLOW 0
#define FE_ALL_EXCEPT 0
#define FE_DOWNWARD 0
#define FE_TONEAREST 0
#define FE_TOWARDZERO 0
#define FE_UPWARD 0
#define FE_DFL_ENV 0

struct fenv_t;
struct fexcept_t;

int feclearexcept(int excepts);
int fetestexcept(int excepts);
int feraiseexcept(int excepts);
int fegetexceptflag(fexcept_t* flagp, int excepts);
int fesetexceptflag(const fexcept_t* flagp, int excepts);
int fesetround(int round);
int fegetround();
int fegetenv(fenv_t* envp);
int fesetenv(const fenv_t* envp);
int feholdexcept(fenv_t* envp);
int feupdateenv(const fenv_t* envp);

} // namespace std

#endif // CPPREFERENCE_CFENV_H
