// $Id: definitions.h 10679 2012-05-29 19:04:27Z cohenofi $ #ifndef ___DEFINITIONS_H #define ___DEFINITIONS_H #ifdef _MSC_VER #define LIMITS_WORKING #endif #ifdef _MSC_VER #pragma warning (disable: 4786) #pragma warning (disable: 4267) #pragma warning (disable: 4018) #pragma warning (disable: 4305) //truncation from 'double' to 'float' #endif #include #include #ifdef LIMITS_WORKING #include #endif using namespace std; #define MDOUBLE double //#define MDOUBLE float // Contants #define PI (3.1415926535897932384626433832795028841971693993751058) typedef vector Vdouble; typedef vector Vint; typedef vector VVint; typedef vector VVVint; typedef vector Vchar; typedef vector VVdouble; typedef vector VVVdouble; typedef vector VVVVdouble; typedef vector VVVVVdouble; typedef vector Vstring; #ifdef LIMITS_WORKING const MDOUBLE VERYBIG = numeric_limits::max(); const MDOUBLE VERYSMALL = -VERYBIG; const MDOUBLE EPSILON = numeric_limits::epsilon(); #else // IF is not recognized, and MDOUBLE is double. const MDOUBLE VERYBIG = 1.79769e+308; const MDOUBLE VERYSMALL = -VERYBIG; const MDOUBLE EPSILON = 2.22045e-016; #endif //The maximum value for type float is: 3.40282e+038 //The maximum value for type double is: 1.79769e+308 //::epsilon() returns the difference between 1 and the smallest value greater than 1 that is representable for the data type. //epsilon float 1.19209e-007 //epsilon double 2.22045e-016 #ifdef LOGREP class logRep; typedef vector VlogRep; typedef vector > VVlogRep; typedef vector< vector > > VVVlogRep; typedef logRep doubleRep; typedef VlogRep VdoubleRep; typedef VVlogRep VVdoubleRep; typedef VVVlogRep VVVdoubleRep; #include "logRep.h" #elif defined (DOUBLEREP) class doubleRepMantisa; typedef vector VdoubleRepMantisa; typedef vector > VVdoubleRepMantisa; typedef vector VVVdoubleRepMantisa; typedef vector VVVVdoubleRepMantisa; typedef doubleRepMantisa doubleRep; typedef VdoubleRepMantisa VdoubleRep; typedef VVdoubleRepMantisa VVdoubleRep; typedef VVVdoubleRepMantisa VVVdoubleRep; typedef VVVVdoubleRepMantisa VVVVdoubleRep; #include "doubleRep.h" #else typedef MDOUBLE doubleRep; typedef Vdouble VdoubleRep; typedef VVdouble VVdoubleRep; typedef VVVdouble VVVdoubleRep; typedef VVVVdouble VVVVdoubleRep; inline MDOUBLE convert (MDOUBLE d) {return (d);} #endif #endif