17 #define _CRT_SECURE_NO_WARNINGS 19 #ifdef _DEBUG // check memory leaks 21 #define _CRTDBG_MAP_ALLOC 23 #define new new (_NORMAL_BLOCK, __FILE__, __LINE__) 31 #include <sys/resource.h> 38 #define SEED_GROW_DEEP // fast and works much times faster (but it can depend 44 #define FAST_SUBSTRUCT_CACHE // based on a hash of Morgan code 45 #define DUP_SUBSTRUCT_CACHE // based on list of query atoms and bonds. For 49 #define FAST_INCREMENTAL_MATCH // fast and some time very usefull. request 54 #define VERBOSE_STATISTICS_ON 57 #define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL 64 static inline int gettimeofday(
struct timeval *tv,
struct timezone *tz) {
66 unsigned __int64 tmpres = 0;
70 GetSystemTimeAsFileTime(&ft);
72 tmpres |= ft.dwHighDateTime;
74 tmpres |= ft.dwLowDateTime;
77 tmpres -= DELTA_EPOCH_IN_MICROSECS;
79 tv->tv_sec = (long)(tmpres / 1000000UL);
80 tv->tv_usec = (long)(tmpres % 1000000UL);
88 tz->tz_minuteswest = _timezone / 60;
89 tz->tz_dsttime = _daylight;
98 gettimeofday(&t, (
struct timezone *)0);
99 return t.tv_usec + t.tv_sec * 1000000ULL;
105 #ifdef VERBOSE_STATISTICS_ON 116 unsigned Seed, RemainingSizeRejected;
132 MismatchedInitialSeed(0),
134 RemainingSizeRejected(0),
136 SingleBondExcluded(0),
140 FastMatchCallTrue(0),
141 SlowMatchCallTrue(0),
143 ExactMatchCallTrue(0),
145 HashKeyFoundInCache(0),
150 WrongCompositionRejected(0),
151 WrongCompositionDetected(0),
153 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