$search
00001 00002 00003 00006 00007 #ifndef INCLUDE_LIB 00008 #define INCLUDE_LIB 00009 00010 //#define use_namespace // define name spaces 00011 00012 //#define SETUP_C_SUBSCRIPTS // allow element access via A[i][j] 00013 00014 //#define OPT_COMPATIBLE // for use with opt++ 00015 00016 // Activate just one of the following 3 statements 00017 00018 //#define SimulateExceptions // use simulated exceptions 00019 #define UseExceptions // use C++ exceptions 00020 //#define DisableExceptions // do not use exceptions 00021 00022 00023 //#define TEMPS_DESTROYED_QUICKLY // for compilers that delete 00024 // temporaries too quickly 00025 00026 //#define TEMPS_DESTROYED_QUICKLY_R // the same thing but applied 00027 // to return from functions only 00028 00029 //#define DO_FREE_CHECK // check news and deletes balance 00030 00031 #define USING_DOUBLE // elements of type double 00032 //#define USING_FLOAT // elements of type float 00033 00034 #define bool_LIB 0 // for compatibility with my older libraries 00035 00036 //#define ios_format_flags ios::fmtflags // for Gnu 3 and Intel for Linux 00037 00038 00039 //#define _STANDARD_ // using standard library 00040 00041 //#define use_float_h // use float.h for precision data 00042 00043 00044 //#define HAS_INT64 // if unsigned _int64 is recognised 00045 // used by newran03 00046 00047 // comment out next line if Exception causes a problem 00048 #define TypeDefException 00049 00050 //*********************** end of options set by user ******************** 00051 00052 00053 // for Gnu C++ version 3 00054 #if defined __GNUG__ && __GNUG__ >= 3 00055 #define _STANDARD_ // use standard library 00056 #define ios_format_flags ios::fmtflags 00057 #endif 00058 00059 // for Intel C++ for Linux 00060 #if defined __ICC 00061 #define _STANDARD_ // use standard library 00062 #define ios_format_flags ios::fmtflags 00063 #endif 00064 00065 // for Borland C++ 5.82 (Turbo C++ 2006) 00066 #if defined __BCPLUSPLUS__ && __BCPLUSPLUS__ >= 0x0582 00067 #define ios_format_flags ios::fmtflags 00068 #endif 00069 00070 // for Microsoft Visual C++ 7 and above (and Intel simulating these) 00071 #if defined _MSC_VER && _MSC_VER >= 1300 00072 #define _STANDARD_ // use standard library 00073 #endif 00074 00075 00076 #ifdef _STANDARD_ // using standard library 00077 #include <cstdlib> 00078 #if defined _MSC_VER && _MSC_VER == 1200 00079 #include <limits> // for VC++6 00080 #endif 00081 #ifdef WANT_STREAM 00082 #include <iostream> 00083 #include <iomanip> 00084 #endif 00085 #ifdef WANT_MATH 00086 #include <cmath> 00087 #endif 00088 #ifdef WANT_STRING 00089 #include <cstring> 00090 #endif 00091 #ifdef WANT_TIME 00092 #include <ctime> 00093 #endif 00094 #ifdef WANT_FSTREAM 00095 #include <fstream> 00096 #endif 00097 using namespace std; 00098 #else 00099 00100 #define DEFAULT_HEADER // use AT&T style header 00101 // if no other compiler is recognised 00102 00103 #ifdef _MSC_VER // Microsoft 00104 #include <stdlib.h> 00105 00106 // reactivate these statements to run under MSC version 7.0 00107 // typedef int jmp_buf[9]; 00108 // extern "C" 00109 // { 00110 // int __cdecl setjmp(jmp_buf); 00111 // void __cdecl longjmp(jmp_buf, int); 00112 // } 00113 00114 #ifdef WANT_STREAM 00115 #include <iostream.h> 00116 #include <iomanip.h> 00117 #endif 00118 #ifdef WANT_MATH 00119 #include <math.h> 00120 #include <float.h> 00121 #endif 00122 #ifdef WANT_STRING 00123 #include <string.h> 00124 #endif 00125 #ifdef WANT_TIME 00126 #include <time.h> 00127 #endif 00128 #ifdef WANT_FSTREAM 00129 #include <fstream.h> 00130 #endif 00131 #undef DEFAULT_HEADER 00132 #endif 00133 00134 #ifdef __ZTC__ // Zortech 00135 #include <stdlib.h> 00136 #ifdef WANT_STREAM 00137 #include <iostream.hpp> 00138 #include <iomanip.hpp> 00139 #define flush "" // not defined in iomanip? 00140 #endif 00141 #ifdef WANT_MATH 00142 #include <math.h> 00143 #include <float.h> 00144 #endif 00145 #ifdef WANT_STRING 00146 #include <string.h> 00147 #endif 00148 #ifdef WANT_TIME 00149 #include <time.h> 00150 #endif 00151 #ifdef WANT_FSTREAM 00152 #include <fstream.h> 00153 #endif 00154 #undef DEFAULT_HEADER 00155 #endif 00156 00157 #if defined __BCPLUSPLUS__ || defined __TURBOC__ // Borland or Turbo 00158 #include <stdlib.h> 00159 #ifdef WANT_STREAM 00160 #include <iostream.h> 00161 #include <iomanip.h> 00162 #endif 00163 #ifdef WANT_MATH 00164 #include <math.h> 00165 #include <float.h> // Borland has both float and values 00166 // but values.h returns +INF for 00167 // MAXDOUBLE in BC5 00168 #endif 00169 #ifdef WANT_STRING 00170 #include <string.h> 00171 #endif 00172 #ifdef WANT_TIME 00173 #include <time.h> 00174 #endif 00175 #ifdef WANT_FSTREAM 00176 #include <fstream.h> 00177 #endif 00178 #undef DEFAULT_HEADER 00179 #endif 00180 00181 #ifdef __GNUG__ // Gnu C++ 00182 #include <stdlib.h> 00183 #ifdef WANT_STREAM 00184 #include <iostream.h> 00185 #include <iomanip.h> 00186 #endif 00187 #ifdef WANT_MATH 00188 #include <math.h> 00189 #include <float.h> 00190 #endif 00191 #ifdef WANT_STRING 00192 #include <string.h> 00193 #endif 00194 #ifdef WANT_TIME 00195 #include <time.h> 00196 #endif 00197 #ifdef WANT_FSTREAM 00198 #include <fstream.h> 00199 #endif 00200 #undef DEFAULT_HEADER 00201 #endif 00202 00203 #ifdef __WATCOMC__ // Watcom C/C++ 00204 #include <stdlib.h> 00205 #ifdef WANT_STREAM 00206 #include <iostream.h> 00207 #include <iomanip.h> 00208 #endif 00209 #ifdef WANT_MATH 00210 #include <math.h> 00211 #include <float.h> 00212 #endif 00213 #ifdef WANT_STRING 00214 #include <string.h> 00215 #endif 00216 #ifdef WANT_TIME 00217 #include <time.h> 00218 #endif 00219 #ifdef WANT_FSTREAM 00220 #include <fstream.h> 00221 #endif 00222 #undef DEFAULT_HEADER 00223 #endif 00224 00225 00226 #ifdef macintosh // MPW C++ on the Mac 00227 #include <stdlib.h> 00228 #ifdef WANT_STREAM 00229 #include <iostream.h> 00230 #include <iomanip.h> 00231 #endif 00232 #ifdef WANT_MATH 00233 #include <float.h> 00234 #include <math.h> 00235 #endif 00236 #ifdef WANT_STRING 00237 #include <string.h> 00238 #endif 00239 #ifdef WANT_TIME 00240 #include <time.h> 00241 #endif 00242 #ifdef WANT_FSTREAM 00243 #include <fstream.h> 00244 #endif 00245 #undef DEFAULT_HEADER 00246 #endif 00247 00248 #ifdef use_float_h // use float.h for precision values 00249 #include <stdlib.h> 00250 #ifdef WANT_STREAM 00251 #include <iostream.h> 00252 #include <iomanip.h> 00253 #endif 00254 #ifdef WANT_MATH 00255 #include <float.h> 00256 #include <math.h> 00257 #endif 00258 #ifdef WANT_STRING 00259 #include <string.h> 00260 #endif 00261 #ifdef WANT_TIME 00262 #include <time.h> 00263 #endif 00264 #ifdef WANT_FSTREAM 00265 #include <fstream.h> 00266 #endif 00267 #undef DEFAULT_HEADER 00268 #endif 00269 00270 00271 #ifdef DEFAULT_HEADER // for example AT&T 00272 #define ATandT 00273 #include <stdlib.h> 00274 #ifdef WANT_STREAM 00275 #include <iostream.h> 00276 #include <iomanip.h> 00277 #endif 00278 #ifdef WANT_MATH 00279 #include <math.h> 00280 #define SystemV // use System V 00281 #include <values.h> 00282 #endif 00283 #ifdef WANT_STRING 00284 #include <string.h> 00285 #endif 00286 #ifdef WANT_TIME 00287 #include <time.h> 00288 #endif 00289 #ifdef WANT_FSTREAM 00290 #include <fstream.h> 00291 #endif 00292 #endif // DEFAULT_HEADER 00293 00294 #endif // _STANDARD_ 00295 00296 #ifdef use_namespace 00297 namespace RBD_COMMON { 00298 #endif 00299 00300 00301 #ifdef USING_FLOAT // set precision type to float 00302 typedef float Real; 00303 typedef double long_Real; 00304 #endif 00305 00306 #ifdef USING_DOUBLE // set precision type to double 00307 typedef double Real; 00308 typedef long double long_Real; 00309 #endif 00310 00311 00312 // This is for (very old) compilers that do not have bool automatically defined 00313 00314 #ifndef bool_LIB 00315 #define bool_LIB 0 00316 00317 class bool 00318 { 00319 int value; 00320 public: 00321 bool(const int b) { value = b ? 1 : 0; } 00322 bool(const void* b) { value = b ? 1 : 0; } 00323 bool() {} 00324 operator int() const { return value; } 00325 int operator!() const { return !value; } 00326 }; 00327 00328 00329 const bool true = 1; 00330 const bool false = 0; 00331 00332 #endif 00333 00334 00335 #ifdef use_namespace 00336 } 00337 #endif 00338 00339 00340 #ifdef use_namespace 00341 namespace RBD_COMMON {} 00342 namespace RBD_LIBRARIES // access all my libraries 00343 { 00344 using namespace RBD_COMMON; 00345 } 00346 #endif 00347 00348 00349 #endif 00350 00351 00353