00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_BASE_HH
00020 #define OST_BASE_HH
00021
00022 #include <cmath>
00023 #include <math.h>
00024 #include <complex>
00025 #include <ost/config.hh>
00026 #include <ost/dllexport.hh>
00027
00028 #ifndef uint
00029 typedef unsigned int uint;
00030 #endif
00031
00032 #ifndef uchar
00033 typedef unsigned char uchar;
00034 #endif
00035
00036 #ifndef ushort
00037 typedef unsigned short int ushort;
00038 #endif
00039
00040
00041 #if OST_DOUBLE_PRECISION
00042 typedef double Real;
00043 #else
00044 typedef float Real;
00045 #endif
00046
00047 #ifdef Complex
00048
00049 #undef Complex
00050 #endif
00051 typedef std::complex<Real> Complex;
00052 typedef unsigned short Word;
00053
00054
00055
00056 #ifndef round_function
00057 #define round_function
00058 #ifndef round
00059 inline Real round( Real d )
00060 {
00061 return floor(d+Real(0.5));
00062 }
00063 #endif
00064 #endif
00065
00066 #ifndef rint_function
00067 #define rint_function
00068 #ifndef rint
00069 inline Real rint(Real d)
00070 {
00071 return floor(d+Real(0.5));
00072 }
00073 #endif
00074 #endif
00075
00076 #if _MSC_VER
00077 #pragma warning(disable:4251)
00078 #pragma warning(disable:4275)
00079 #pragma warning(disable:4244)
00080 #pragma warning(disable:4231)
00081 #pragma warning(disable:4305)
00082 #pragma warning(disable:4351) // turn off "new behavior ... will be default initialized" warning
00083
00084 #ifndef log2_function
00085 #define log2_function
00086 #ifndef log2
00087
00088
00089 inline double log2( double n )
00090 {
00091
00092 return log( double(n) ) / log( 2.0 );
00093 }
00094 #endif
00095 #endif
00096
00097 # ifdef FindAtom
00098 # undef FindAtom
00099 # endif
00100 # ifdef AddAtom
00101 # undef AddAtom
00102 # endif
00103
00104 #endif
00105
00106
00107 typedef std::string String;
00108
00109
00110 #endif