void Microscopic::Run(int n){ f=fopen("./data/collision_time_micro.txt","w"); fclose(f); avgstate[SEARCH]=0; avgstate[COLLISION]=0; for(int i=1; i<=n; i++){ SingleRun(EXP_LENGTH); avgstate[SEARCH]=((avgstate[SEARCH])*(i-1)+avgoneexp[SEARCH])/i; avgstate[COLLISION]=((avgstate[COLLISION])*(i-1)+avgoneexp[COLLISION])/i; printf("Experiment %d: Ns: %f Na: %f\n",i,avgoneexp[SEARCH],avgoneexp[COLLISION]); } printf("Average over all experiments: Ns: %f Na: %f\n",avgstate[SEARCH],avgstate[COLLISION]); }
bool WuMethod::Run(void) { vector <pair <int, string> > varperm; vector <pair <int, Poly> > polyperm; for (int i = 0; i < getWuVarNum(); i++) varperm.push_back(make_pair(i, m_wuvar[i])); for (int i = 0; i < getWuPolyNum(); i++) polyperm.push_back(make_pair(i, m_wupoly[i])); do { do { if (SingleRun(varperm, polyperm)) return true; } while (next_permutation(varperm.begin(), varperm.end(), CompareWuVar())); } while (next_permutation(polyperm.begin(), polyperm.end(), CompareWuPoly())); return false; }