void mMultiObj::record(Global * glob,int index,vector<double> &obj,vector<double> &point) { int ID = glob->m_runId; for(int i=0;i<obj.size();i++) mvvv_obj[ID][index][i]=obj[i]; for(int i=0;i<point.size();i++) mvvv_point[ID][index][i]=point[i]; if (Global::g_arg[param_proName] == "FUN_FreePeak_M_OnePeak") { FFreePeak_M_OnePeak* mp = dynamic_cast<FFreePeak_M_OnePeak*>(glob->mp_problem.get()); int type = mp->getType(); for (int i = 0; i < m_psr.size(); ++i) { int tidx = mp->getTreeRoot(point); int gidx = mp->getTree(tidx)->get_regionIdx(point); int bidx = mp->boxIdx(tidx, gidx); if (bidx == m_psr[i]) { if (1 == type || 2 == type) m_fpsr[ID][i] = true; else if (3 == type) {//Countable case MyVector v = mp->getPeak(bidx, 0).m_obj; if (v.getDis(obj) < 1.0e-1) { m_fpsr[ID][i] = true; } } } } } }