#ifndef BASE_DEFINED // // Include the header files we need across the program // #include "mpi.h" // Intel compiler complains if this is not included before stdio.h, for some reason. #include #include #include #include #include #include // // For memory usage stats direct from the kernel, under Mach / OSX // #ifdef __MACH__ #include #include #include #endif // // Easy tracing of error locations // #define ERROR_MACRO(...) { Error( __func__, __FILE__, __LINE__, __VA_ARGS__ ); } // // Dummy macros; these provide simple routine timings in the full code. // #define START_ROUTINE_TIMER {} #define END_ROUTINE_TIMER {} // // Type declarations // typedef std::vector IntVec; // // Get process memory use (OS specific!) // int getmem( unsigned int *rss, unsigned int *vs ); // // Utility routines // double GetTime(); void Log( const char *format, ... ); void Error( const char *called_from, const char *in_file, int on_line, const char *format, ... ); // // Hack: easy per-process log file handles // extern FILE *logfile; #define BASE_DEFINED #endif