1 /* gsl_nan.h
2  *
3  * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007 Gerard Jungman, Brian Gough
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or (at
8  * your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
18  * USA.
19  */
20 
21 #ifndef __GSL_NAN_H__
22 #define __GSL_NAN_H__
23 
24 #ifdef INFINITY
25 #define GSL_POSINF INFINITY
26 #define GSL_NEGINF (-INFINITY)
27 #elif defined(HUGE_VAL)
28 #define GSL_POSINF HUGE_VAL
29 #define GSL_NEGINF (-HUGE_VAL)
30 #else
31 #define GSL_POSINF (gsl_posinf())
32 #define GSL_NEGINF (gsl_neginf())
33 #endif
34 
35 #ifdef NAN
36 #define GSL_NAN NAN
37 #elif defined(INFINITY)
38 #define GSL_NAN (INFINITY / INFINITY)
39 #else
40 #define GSL_NAN (gsl_nan())
41 #endif
42 
43 #define GSL_POSZERO (+0.0)
44 #define GSL_NEGZERO (-0.0)
45 
46 #endif /* __GSL_NAN_H__ */
47