This is Unofficial EPICS BASE Doxygen Site
epicsMath.h
Go to the documentation of this file.
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 * EPICS BASE is distributed subject to a Software License Agreement found
7 * in file LICENSE that is included with this distribution.
8 \*************************************************************************/
9 
10 #ifndef epicsMathh
11 #define epicsMathh
12 
13 #include <math.h>
14 #include <private/mathP.h>
15 #include <libComAPI.h>
16 
17 /* private/mathP.h defines NAN as 4, and uses its value in the
18  * isNan() macro. We need mathP.h for isInf(), but can create
19  * our own isnan() test. epicsMath.cpp requires that NAN either
20  * be undef or yield the NaN value, so this solves the issue.
21  */
22 #undef NAN
23 
24 #define isnan(D) (!(D == D))
25 #define isinf(D) isInf(D)
26 #define finite(D) (!isnan(D) && !isInf(D))
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 LIBCOM_API extern float epicsNAN;
33 LIBCOM_API extern float epicsINF;
34 
35 #ifdef __cplusplus
36 }
37 #endif
38 
39 #endif /* epicsMathh */
LIBCOM_API float epicsINF
Definition: epicsMath.cpp:36
LIBCOM_API float epicsNAN
Definition: epicsMath.cpp:35