18 #define _CRT_SECURE_NO_WARNINGS 20 #ifdef _DEBUG // check memory leaks 22 #define _CRTDBG_MAP_ALLOC 24 #define new new (_NORMAL_BLOCK, __FILE__, __LINE__) 32 #include <sys/resource.h> 39 #define SEED_GROW_DEEP // fast and works much times faster (but it can depend 45 #define FAST_SUBSTRUCT_CACHE // based on a hash of Morgan code 46 #define DUP_SUBSTRUCT_CACHE // based on list of query atoms and bonds. For 50 #define FAST_INCREMENTAL_MATCH // fast and some time very usefull. request 55 #define VERBOSE_STATISTICS_ON 58 #define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL 65 static inline int gettimeofday(
struct timeval *tv,
struct timezone *tz) {
67 unsigned __int64 tmpres = 0;
71 GetSystemTimeAsFileTime(&ft);
73 tmpres |= ft.dwHighDateTime;
75 tmpres |= ft.dwLowDateTime;
78 tmpres -= DELTA_EPOCH_IN_MICROSECS;
80 tv->tv_sec = (long)(tmpres / 1000000UL);
81 tv->tv_usec = (long)(tmpres % 1000000UL);
89 tz->tz_minuteswest = _timezone / 60;
90 tz->tz_dsttime = _daylight;
99 gettimeofday(&t, (
struct timezone *)0);
100 return t.tv_usec + t.tv_sec * 1000000ULL;
106 #ifdef VERBOSE_STATISTICS_ON 117 unsigned Seed, RemainingSizeRejected;
133 MismatchedInitialSeed(0),
135 RemainingSizeRejected(0),
137 SingleBondExcluded(0),
141 FastMatchCallTrue(0),
142 SlowMatchCallTrue(0),
144 ExactMatchCallTrue(0),
146 HashKeyFoundInCache(0),
151 WrongCompositionRejected(0),
152 WrongCompositionDetected(0),
154 DupCacheFoundMatch(0) {}
unsigned SlowMatchCallTrue
unsigned BondCompareCalls
unsigned ExactMatchCallTrue
unsigned HashKeyFoundInCache
unsigned BondFunctorCalls
unsigned SingleBondExcluded
static unsigned long long nanoClock(void)
unsigned long long MCSFoundTime
unsigned DupCacheFoundMatch
unsigned MismatchedInitialSeed
unsigned WrongCompositionRejected