Planeshift

fpconfig.h

Go to the documentation of this file.
00001 /***************************************************************************\
00002 |* Function Parser for C++ v4.5.2                                          *|
00003 |*-------------------------------------------------------------------------*|
00004 |* Copyright: Juha Nieminen                                                *|
00005 |*                                                                         *|
00006 |* This library is distributed under the terms of the                      *|
00007 |* GNU Lesser General Public License version 3.                            *|
00008 |* (See lgpl.txt and gpl.txt for the license text.)                        *|
00009 \***************************************************************************/
00010 
00011 // Configuration file
00012 // ------------------
00013 
00014 /* NOTE:
00015    This file is for the internal use of the function parser only.
00016    You don't need to include this file in your source files, just
00017    include "fparser.hh".
00018 */
00019 
00020 
00021 /* Uncomment any of these lines or define them in your compiler settings
00022    to enable the correspondent version of the parser. (These are disabled
00023    by default because they rely on C99 functions, and non-standard libraries
00024    in the case pf MPFR and GMP, and they make compiling needlessly slower
00025    and the resulting binary needlessly larger if they are not used in the
00026    program.)
00027 */
00028 //#define FP_SUPPORT_FLOAT_TYPE
00029 //#define FP_SUPPORT_LONG_DOUBLE_TYPE
00030 //#define FP_SUPPORT_LONG_INT_TYPE
00031 //#define FP_SUPPORT_MPFR_FLOAT_TYPE
00032 //#define FP_SUPPORT_GMP_INT_TYPE
00033 //#define FP_SUPPORT_COMPLEX_DOUBLE_TYPE
00034 //#define FP_SUPPORT_COMPLEX_FLOAT_TYPE
00035 //#define FP_SUPPORT_COMPLEX_LONG_DOUBLE_TYPE
00036 
00037 /* If you are using FunctionParser_ld or FunctionParser_cld and your compiler
00038    supports the strtold() function, you should uncomment the following line.
00039  */
00040 //#define FP_USE_STRTOLD
00041 
00042 
00043 /* Uncomment this line or define it in your compiler settings if you want
00044    to disable compiling the basic double version of the library, in case
00045    one of the above types is used but not the double type. (If the double
00046    type is not used, then disabling it makes compiling faster and the
00047    resulting binary smaller.)
00048  */
00049 //#define FP_DISABLE_DOUBLE_TYPE
00050 
00051 /* Uncomment this line or define it in your compiler settings to make the
00052    parser use C++11 math functions. (Note that these may not be supported
00053    by all compilers.)
00054 */
00055 //#define FP_SUPPORT_CPLUSPLUS11_MATH_FUNCS
00056 
00057 /*
00058  Whether to use shortcut evaluation for the & and | operators:
00059 */
00060 #ifndef FP_DISABLE_SHORTCUT_LOGICAL_EVALUATION
00061 #define FP_ENABLE_SHORTCUT_LOGICAL_EVALUATION
00062 #endif
00063 
00064 /*
00065  Comment out the following lines out if you are not going to use the
00066  optimizer and want a slightly smaller library. The Optimize() method
00067  can still be called, but it will not do anything.
00068  If you are unsure, just leave it. It won't slow down the other parts of
00069  the library.
00070 */
00071 #ifndef FP_NO_SUPPORT_OPTIMIZER
00072 #define FP_SUPPORT_OPTIMIZER
00073 #endif
00074 
00075 #if defined(FP_SUPPORT_COMPLEX_DOUBLE_TYPE) || defined(FP_SUPPORT_COMPLEX_FLOAT_TYPE) || defined(FP_SUPPORT_COMPLEX_LONG_DOUBLE_TYPE)
00076 #define FP_SUPPORT_COMPLEX_NUMBERS
00077 #endif
00078 
00079 
00080 /*
00081  No member function of FunctionParser is thread-safe. Most prominently,
00082  Eval() is not thread-safe. By uncommenting one of these lines the Eval()
00083  function can be made thread-safe at the cost of a possible small overhead.
00084  The second version requires that the compiler supports the alloca() function,
00085  which is not standard, but is faster.
00086  */
00087 //#define FP_USE_THREAD_SAFE_EVAL
00088 //#define FP_USE_THREAD_SAFE_EVAL_WITH_ALLOCA