EPICS Base  7.0.6.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
epicsMath.h
1 /*************************************************************************\
2 * Copyright (c) 2002 The University of Chicago, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * SPDX-License-Identifier: EPICS
7 * EPICS BASE is distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 
11 #ifndef epicsMathh
12 #define epicsMathh
13 
14 #include <math.h>
15 #include <libComAPI.h>
16 
17 #ifdef __cplusplus
18 
19 #if __cplusplus>=201103L
20 #include <cmath>
21 
22 #if __GLIBCXX__>20160427
23 using std::isfinite;
24 using std::isinf;
25 using std::isnan;
26 using std::isnormal;
27 #endif
28 #endif /* c++11 */
29 
30 extern "C" {
31 #endif
32 
33 #ifdef isfinite
34 # undef finite
35 # define finite(x) isfinite((double)(x))
36 #endif
37 
38 LIBCOM_API extern float epicsNAN;
39 LIBCOM_API extern float epicsINF;
40 
41 #ifdef __cplusplus
42 }
43 #endif
44 
45 #endif /* epicsMathh */