/home/coin/SVN-release/OS-2.2.0/OS/src/OSUtils/OSParameters.h

Go to the documentation of this file.
00001 /* $Id: OSParameters.h 3556 2010-06-23 07:05:17Z kmartin $ */
00018 // CoinFinite includes <cmath> (I think) which causes a problem 
00019 //#include<CoinFinite.hpp>
00020 
00021 //kipp fix up the infinity issue
00022 //kipp define OSINFINITY to COIN_DBL_MAX
00023 
00024 
00025 
00026 #ifndef OSPARAMETERS
00027 #define OSPARAMETERS
00028 
00029 #include "OSConfig.h"
00030 
00031 
00032 #ifdef HAVE_CMATH
00033 # include <cmath>
00034 #else
00035 # ifdef HAVE_MATH_H
00036 #  include <math.h>
00037 # else
00038 #  error "don't have header file for math"
00039 # endif
00040 #endif
00041 #ifdef HAVE_CFLOAT
00042 # include <cfloat>
00043 #else
00044 # ifdef HAVE_FLOAT_H
00045 #  include <float.h>
00046 # endif
00047 #endif
00048 #ifdef HAVE_CIEEEFP
00049 # include <cieeefp>
00050 #else
00051 # ifdef HAVE_IEEEFP_H
00052 #  include <ieeefp.h>
00053 # endif
00054 #endif
00055 
00056 #ifdef HAVE_CSTRING
00057 # include <cstring>
00058 #else
00059 # ifdef HAVE_STRING_H
00060 #  include <string.h>
00061 # else
00062 #  error "don't have header file for string"
00063 # endif
00064 #endif
00065 
00066 
00067 #ifdef HAVE_CSTDLIB
00068 # include <cstdlib>
00069 #else
00070 # ifdef HAVE_STDLIB_H
00071 #  include <stdlib.h>
00072 # endif
00073 #endif
00074 
00075 #include <string>
00076 #include <sstream>  
00077 using std::string;
00078 using std::ostringstream;
00079 
00080 #define OS_PLUS 1001
00081 #define OS_SUM  1002
00082 #define OS_MINUS  1003
00083 #define OS_NEGATE  1004
00084 #define OS_TIMES  1005
00085 #define OS_DIVIDE  1006
00086 #define OS_POWER  1009
00087 #define OS_PRODUCT  1010
00088 #define OS_ABS  2001
00089 #define OS_SQUARE  2005
00090 #define OS_SQRT  2006
00091 #define OS_LN  2007
00092 #define OS_EXP  2010
00093 #define OS_SIN  3001
00094 #define OS_COS  3002
00095 #define OS_MIN  4010
00096 #define OS_MAX  4011
00097 #define OS_ERF  4625
00098 #define OS_NUMBER  5001
00099 #define OS_PI  5003
00100 #define OS_E  5004
00101 #define OS_VARIABLE  6001
00102 #define OS_IF  7001
00103 #define OS_ALLDIF  7016
00104 
00105 
00106 
00107 //#include <limits.h>
00108 //#ifdef INFINITY //This is the definition in the ISO C99 standard.
00109 //      #define OSINFINITY INFINITY
00110 //#else
00111 //      #define OSINFINITY 1e20
00112 //#endif
00113 
00114 //#define OSINFINITY 1e30
00115 
00116 #define OS_E_VALUE exp(1.0)
00117 #define OS_PI_VALUE 2*asin(1.0)
00118 
00119 #define OS_SCHEMA_VERSION "2.0"
00120 
00121 
00122 
00127 #define OS_NEAR_EQUAL 1e-2
00128 
00129 #define OS_EPS 1e-12
00130 
00131 inline double nanKludge(){
00132         double zero = 0.0;
00133         return 0.0/zero;
00134 }
00135 
00136 #ifdef NAN 
00137 #define OSNAN NAN
00138 #elif defined NaN
00139 #define OSNAN NaN
00140 #elif defined nan
00141 #define OSNAN nan
00142 #elif defined (_MSC_VER)
00143 #include <ymath.h>
00144 #define OSNAN _Nan._Double
00145 #else
00146 #define OSNAN nanKludge() // wow, what a last resort, I don't like this!
00147 #endif
00148 
00149 
00150 
00151 
00152 
00153 #ifdef DBL_MAX
00154         #define OSDBL_MAX DBL_MAX
00155 #elif defined HUGE_VAL
00156         //#define OSDBL_MAX OSINFINITY
00157         #define OSDBL_MAX HUGE_VAL
00158 #else
00159         #define OSDBL_MAX 1e30
00160 #endif
00161 
00162 
00163 #ifdef INT_MAX
00164 #define OSINT_MAX INT_MAX
00165 #else
00166 #define OSINT_MAX 2147483647
00167 #endif
00168 
00169 #ifndef XSLT_LOCATION
00170 #define XSLT_LOCATION  OSSRCDIR;
00171 #endif
00172 
00173 
00174 
00175 
00176 
00177 inline std::string      getVersionInfo(){
00178         ostringstream versionInfo;
00179                 versionInfo << std::endl << std::endl;
00180                 versionInfo << "Optimization Services Solver";
00181                 versionInfo << std::endl;       
00182                 versionInfo << "Main Authors: Horand Gassmann, Jun Ma, and Kipp Martin";
00183                 versionInfo << std::endl;
00184                 versionInfo << "Distributed under the Common Public License 1.0" ;
00185                 versionInfo << std::endl;
00186                 versionInfo << "OS Version: ";
00187                 versionInfo << OS_VERSION;
00188                 versionInfo << std::endl;       
00189                 versionInfo << "Build Date: ";
00190                 versionInfo << __DATE__;
00191                 versionInfo << std::endl;       
00192         
00193                 #ifdef OS_SVN_REV
00194                         versionInfo << "SVN Version: "; 
00195                         versionInfo << OS_SVN_REV;
00196                 #endif
00197                         
00198                 versionInfo << std::endl << std::endl;
00199         return versionInfo.str() ;
00200 } 
00201 
00202 
00203 #endif
00204 
00205 
00206 

Generated on Thu Aug 5 03:03:05 2010 by  doxygen 1.4.7