00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef TVMET_H
00025 #define TVMET_H
00026
00027 #include <tvmet/config.h>
00028
00029
00030
00031
00032
00033
00034
00035
00036 #if defined(__GNUC__)
00037 # include <tvmet/config/config-gcc.h>
00038 #endif
00039
00040 #if defined(__INTEL_COMPILER)
00041 # include <tvmet/config/config-icc.h>
00042 #endif
00043
00044 #if defined(__KCC)
00045 # include <tvmet/config/config-kcc.h>
00046 #endif
00047
00048 #if defined(__PGI)
00049 # include <tvmet/config/config-pgi.h>
00050 #endif
00051
00052
00053 #if defined(_MSC_VER) && (_MSC_VER >= 1310)
00054 # include <tvmet/config/config-vc71.h>
00055 #endif
00056
00057
00058 #if defined(__DCC__)
00059 # include <tvmet/config/config-dcc.h>
00060 #endif
00061
00062
00063
00064 #if !defined(TVMET_HAVE_MUTABLE)
00065 # error "Your compiler doesn't support the mutable keyword! Giving up."
00066 #endif
00067
00068 #if !defined(TVMET_HAVE_TYPENAME)
00069 # error "Your compiler doesn't support the typename keyword! Giving up."
00070 #endif
00071
00072 #if !defined(TVMET_HAVE_NAMESPACES)
00073 # error "Your compiler doesn't support the namespace concept! Giving up."
00074 #endif
00075
00076 #if !defined(TVMET_HAVE_PARTIAL_SPECIALIZATION)
00077 # error "Your compiler doesn't support partial specialization! Giving up."
00078 #endif
00079
00080
00081
00082
00083
00084
00093 #if !defined(TVMET_CXX_ALWAYS_INLINE)
00094 #define TVMET_CXX_ALWAYS_INLINE
00095 #endif
00096
00097
00098
00099
00100
00101
00102
00107 #if !defined(TVMET_COMPLEXITY_DEFAULT_TRIGGER)
00108 # define TVMET_COMPLEXITY_DEFAULT_TRIGGER 1000
00109 #endif
00110
00115 #if !defined(TVMET_COMPLEXITY_M_ASSIGN_TRIGGER)
00116 # define TVMET_COMPLEXITY_M_ASSIGN_TRIGGER 8*8
00117 #endif
00118
00125 #if !defined(TVMET_COMPLEXITY_MM_TRIGGER)
00126 # define TVMET_COMPLEXITY_MM_TRIGGER 8*8
00127 #endif
00128
00133 #if !defined(TVMET_COMPLEXITY_V_ASSIGN_TRIGGER)
00134 # define TVMET_COMPLEXITY_V_ASSIGN_TRIGGER 8
00135 #endif
00136
00143 #if !defined(TVMET_COMPLEXITY_MV_TRIGGER)
00144 # define TVMET_COMPLEXITY_MV_TRIGGER 8*8
00145 #endif
00146
00147
00148
00149
00150
00151 #if defined(TVMET_HAVE_IEEE_MATH)
00152 # define _ALL_SOURCE
00153 # if !defined(_XOPEN_SOURCE)
00154 # define _XOPEN_SOURCE
00155 # endif
00156 # if !defined(_XOPEN_SOURCE_EXTENDED)
00157 # define _XOPEN_SOURCE_EXTENDED
00158 # endif
00159 #endif
00160
00161
00183 #if !defined(TVMET_OPTIMIZE)
00184 # undef TVMET_CXX_ALWAYS_INLINE
00185 # define TVMET_CXX_ALWAYS_INLINE
00186 #endif
00187
00188
00189
00190
00191
00192
00193
00225
00226
00227
00228 #if defined(TVMET_HAVE_COMPLEX)
00229 namespace std {
00230 template<class T> class complex;
00231 }
00232 #endif
00233
00234
00235
00236
00237
00238 #include <tvmet/TvmetBase.h>
00239
00240
00241 #endif // TVMET_H
00242
00243
00244
00245
00246
00247