libMesh
include
utils
fpe_disabler.h
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2025 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4
// This library is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU Lesser General Public
6
// License as published by the Free Software Foundation; either
7
// version 2.1 of the License, or (at your option) any later version.
8
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// Lesser General Public License for more details.
13
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this library; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20
#ifndef LIBMESH_FPE_DISABLER_H
21
#define LIBMESH_FPE_DISABLER_H
22
23
24
// Local includes
25
#include "libmesh/libmesh_common.h"
26
27
// C++ includes
28
#include <cfenv>
29
30
namespace
libMesh
31
{
32
49
struct
FPEDisabler
50
{
51
FPEDisabler
()
52
{
53
std::feholdexcept(&
old_env
);
54
}
55
56
~FPEDisabler
()
57
{
58
std::fesetenv(&
old_env
);
59
}
60
61
std::fenv_t
old_env
;
62
};
63
64
}
// namespace libMesh
65
66
#endif // LIBMESH_PERFLOG_H
libMesh::FPEDisabler::old_env
std::fenv_t old_env
Definition:
fpe_disabler.h:61
libMesh::FPEDisabler
The FPEDisabler class puts Floating-Point Exception (FPE) trapping on hold during its lifetime...
Definition:
fpe_disabler.h:49
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
libMesh::FPEDisabler::~FPEDisabler
~FPEDisabler()
Definition:
fpe_disabler.h:56
libMesh::FPEDisabler::FPEDisabler
FPEDisabler()
Definition:
fpe_disabler.h:51
Generated on Fri Jul 18 2025 13:27:28 for libMesh by
1.8.14