17#define _CRT_SECURE_NO_WARNINGS
22#define _CRTDBG_MAP_ALLOC
24#define new new (_NORMAL_BLOCK, __FILE__, __LINE__)
32#include <sys/resource.h>
45#define FAST_SUBSTRUCT_CACHE
46#define DUP_SUBSTRUCT_CACHE
50#define FAST_INCREMENTAL_MATCH
55#define VERBOSE_STATISTICS_ON
58#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
65static 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 *)
nullptr);
100 return t.tv_usec + t.tv_sec * 1000000ULL;
106#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