18#define _CRT_SECURE_NO_WARNINGS
23#define _CRTDBG_MAP_ALLOC
25#define new new (_NORMAL_BLOCK, __FILE__, __LINE__)
33#include <sys/resource.h>
46#define FAST_SUBSTRUCT_CACHE
47#define DUP_SUBSTRUCT_CACHE
51#define FAST_INCREMENTAL_MATCH
56#define VERBOSE_STATISTICS_ON
59#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
66static inline int gettimeofday(
struct timeval *tv,
struct timezone *tz) {
68 unsigned __int64 tmpres = 0;
72 GetSystemTimeAsFileTime(&ft);
74 tmpres |= ft.dwHighDateTime;
76 tmpres |= ft.dwLowDateTime;
79 tmpres -= DELTA_EPOCH_IN_MICROSECS;
81 tv->tv_sec = (long)(tmpres / 1000000UL);
82 tv->tv_usec = (long)(tmpres % 1000000UL);
90 tz->tz_minuteswest = _timezone / 60;
91 tz->tz_dsttime = _daylight;
100 gettimeofday(&t, (
struct timezone *)
nullptr);
101 return t.tv_usec + t.tv_sec * 1000000ULL;
107#ifdef VERBOSE_STATISTICS_ON
static unsigned long long nanoClock(void)
unsigned long long MCSFoundTime
unsigned int DupCacheFound
unsigned int FastMatchCall
unsigned int RemainingSizeRejected
unsigned int BondCompareCalls
unsigned int MCSFoundStep
unsigned int WrongCompositionDetected
unsigned int FastMatchCallTrue
unsigned int DupCacheFoundMatch
unsigned int MismatchedInitialSeed
unsigned int FindHashInCache
unsigned int SlowMatchCallTrue
unsigned int ExactMatchCallTrue
unsigned int AtomFunctorCalls
unsigned int MatchCallTrue
unsigned int IndividualBondExcluded
unsigned int WrongCompositionRejected
unsigned int HashKeyFoundInCache
unsigned int AtomCompareCalls
unsigned int BondFunctorCalls
unsigned int ExactMatchCall