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__) 30 #include <sys/resource.h> 36 #define SEED_GROW_DEEP // fast and works much times faster (but it can depend 42 #define FAST_SUBSTRUCT_CACHE // based on a hash of Morgan code 43 #define DUP_SUBSTRUCT_CACHE // based on list of query atoms and bonds. For 47 #define FAST_INCREMENTAL_MATCH // fast and some time very usefull. request 52 #define VERBOSE_STATISTICS_ON 55 #define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL 62 static inline int gettimeofday(
struct timeval *tv,
struct timezone *tz) {
64 unsigned __int64 tmpres = 0;
68 GetSystemTimeAsFileTime(&ft);
70 tmpres |= ft.dwHighDateTime;
72 tmpres |= ft.dwLowDateTime;
75 tmpres -= DELTA_EPOCH_IN_MICROSECS;
77 tv->tv_sec = (long)(tmpres / 1000000UL);
78 tv->tv_usec = (long)(tmpres % 1000000UL);
86 tz->tz_minuteswest = _timezone / 60;
87 tz->tz_dsttime = _daylight;
96 gettimeofday(&t, (
struct timezone *)0);
97 return t.tv_usec + t.tv_sec * 1000000ULL;
103 #ifdef VERBOSE_STATISTICS_ON 114 unsigned Seed, RemainingSizeRejected;
130 MismatchedInitialSeed(0),
132 RemainingSizeRejected(0),
134 SingleBondExcluded(0),
138 FastMatchCallTrue(0),
139 SlowMatchCallTrue(0),
141 ExactMatchCallTrue(0),
143 HashKeyFoundInCache(0),
148 WrongCompositionRejected(0),
149 WrongCompositionDetected(0),
151 DupCacheFoundMatch(0) {}
unsigned SlowMatchCallTrue
unsigned BondCompareCalls
unsigned ExactMatchCallTrue
unsigned HashKeyFoundInCache
unsigned BondFunctorCalls
unsigned SingleBondExcluded
static unsigned long long nanoClock(void)
Includes a bunch of functionality for handling Atom and Bond queries.
unsigned long long MCSFoundTime
unsigned DupCacheFoundMatch
unsigned MismatchedInitialSeed
unsigned WrongCompositionRejected