00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef TEUCHOS_CONFIGDEFS_HPP
00032 #define TEUCHOS_CONFIGDEFS_HPP
00033
00039 #include "Teuchos_config.h"
00040
00041 #ifdef HAVE_TEUCHOS_DEBUG
00042 # define TEUCHOS_DEBUG
00043 # define HAVE_TEUCHOS_ARRAY_BOUNDSCHECK
00044 #endif
00045
00046 #ifdef __cplusplus
00047
00048 #if defined(_MSC_VER) || defined(__APPLE__)
00049 # define TEUCHOS_NO_ZERO_ITERATOR_CONVERSION
00050 #endif
00051
00052 #ifdef _AIX
00053 # ifndef TEMPLATE_FRIENDS_NOT_SUPPORTED
00054 # define TEMPLATE_FRIENDS_NOT_SUPPORTED
00055 # endif
00056 #endif
00057
00058
00059 #ifndef HAVE_COMPLEX
00060 # define HAVE_COMPLEX
00061 #endif
00062
00063 #include <cstdio>
00064 #include <cstdarg>
00065 #include <cerrno>
00066 #include <climits>
00067 #include <cstdlib>
00068 #include <string>
00069 #include <cstring>
00070 #include <cmath>
00071 #include <iostream>
00072 #include <iomanip>
00073 #include <fstream>
00074 #include <sstream>
00075 #include <stdexcept>
00076 #include <cassert>
00077 #include <complex>
00078 #include <map>
00079 #include <vector>
00080 #include <deque>
00081 #include <algorithm>
00082 #include <numeric>
00083 #include <list>
00084 #include <set>
00085 #include <typeinfo>
00086 #include <limits>
00087 #include <memory>
00088
00089 namespace Teuchos { class DummyDummyClass; }
00090
00091
00092
00093 const double Teuchos_MinDouble = 1.0E-100;
00094 const double Teuchos_MaxDouble = 1.0E+100;
00095 const double Teuchos_Overflow = 1.79E308;
00096 const double Teuchos_Underflow = 2.23E-308;
00097
00098
00099
00100
00101 #define TEUCHOS_OSTRINGSTREAM_GET_C_STR(OSS) (OSS).str().c_str()
00102 typedef std::ostringstream TeuchosOStringStream;
00103
00104 #else
00105
00106 #include <stddef.h>
00107
00108 #endif
00109
00110
00111
00112 #ifdef TEUCHOS_CHK_ERR
00113 #undef TEUCHOS_CHK_ERR
00114 #endif
00115 #ifdef TEUCHOS_CHK_PTR
00116 #undef TEUCHOS_CHK_PTR
00117 #endif
00118 #ifdef TEUCHOS_CHK_REF
00119 #undef TEUCHOS_CHK_REF
00120 #endif
00121
00122
00123
00124
00125
00126
00127
00128 typedef TEUCHOS_ORDINAL_TYPE Teuchos_Ordinal;
00129
00130 #ifdef __cplusplus
00131 namespace Teuchos { typedef Teuchos_Ordinal Ordinal; }
00132 #endif
00133
00134
00135 typedef Teuchos_Ordinal Teuchos_Index;
00136
00137
00138
00139 #define TEUCHOS_CHK_ERR(a) { if (a != 0) return(a);}
00140 #define TEUCHOS_CHK_PTR(a) { return(a);}
00141 #define TEUCHOS_CHK_REF(a) { return(a);}
00142
00143 #ifdef __cplusplus
00144 const int Teuchos_DefaultTracebackMode = 1;
00145 #endif
00146
00147
00148 #define TEUCHOS_MAX(x,y) (( (x) > (y) ) ? (x) : (y) )
00149 #define TEUCHOS_MIN(x,y) (( (x) < (y) ) ? (x) : (y) )
00150 #define TEUCHOS_SGN(x) (( (x) < 0.0 ) ? -1.0 : 1.0 )
00151
00152 #ifndef HAVE_FORTRAN_SUPPORT
00153 # ifndef FORTRAN_DISABLED
00154 # define FORTRAN_DISABLED
00155 # endif
00156 #endif
00157
00158 #include "Teuchos_DLLExportMacro.h"
00159
00160 #endif