1 /*
2  * The Spar Library - modular math parser
3  * Copyright (C) 2000,2001 Davide Angelocola <davide178@inwind.it>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA  02111-1307, USA.
19  *
20  */
21 
22 #ifndef _sl_constant_h_
23 #define _sl_constant_h_
24 
25 #undef M_E
26 #undef M_LOG2E
27 #undef M_LOG10E
28 #undef M_LN2
29 #undef M_LN10
30 #undef M_PI
31 #undef M_PI_2
32 #undef M_PI_4
33 #undef M_1_PI
34 #undef M_2_PI
35 #undef M_2_SQRTPI
36 #undef M_SQRT2
37 #undef M_SQRT1_2
38 
39 #define M_E            2.7182818284590452354    /* e */
40 #define M_LOG2E        1.4426950408889634074    /* log_2 e */
41 #define M_LOG10E       0.43429448190325182765   /* log_10 e */
42 #define M_LN2          0.69314718055994530942   /* log_e 2 */
43 #define M_LN10         2.30258509299404568402   /* log_e 10 */
44 #define M_PI           3.14159265358979323846   /* pi */
45 #define M_PI_2         1.57079632679489661923   /* pi/2 */
46 #define M_PI_4         0.78539816339744830962   /* pi/4 */
47 #define M_1_PI         0.31830988618379067154   /* 1/pi */
48 #define M_2_PI         0.63661977236758134308   /* 2/pi */
49 #define M_2_SQRTPI     1.12837916709551257390   /* 2/sqrt(pi) */
50 #define M_SQRT2        1.41421356237309504880   /* sqrt(2) */
51 #define M_SQRT1_2      0.70710678118654752440   /* 1/sqrt(2) */
52 
53 /*
54  *  Some other constants
55  */
56 #define SL_NAN                  (0.0 / 0.0)
57 #define SL_POSINF               (+1.0 / 0.0)
58 #define SL_NEGINF               (-1.0 / 0.0)
59 #define SL_DOUBLE_EPSILON    2.2204460492503131e-16
60 #define SL_DOUBLE_MIN        2.2250738585072014e-308
61 #define SL_DOUBLE_MAX        1.7976931348623157e+308
62 
63 #define ZERO 		0.0
64 #define SL_ZERO		ZERO
65 #endif /* _sl_constant_h_ */
66