亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? noxim_explorer.cpp.svn-base

?? NoC 仿真環境
?? SVN-BASE
?? 第 1 頁 / 共 2 頁
字號:
  eparams.repetitions = DEF_REPETITIONS;  for (uint i=0; i<explorer_params.size(); i++)    {      istringstream iss(explorer_params[i]);      string label;      iss >> label;            if (label == SIMULATOR_LABEL)	iss >> eparams.simulator;      else if (label == REPETITIONS_LABEL)	iss >> eparams.repetitions;      else if (label == TMP_DIR_LABEL)	iss >> eparams.tmp_dir;      else	{	  error_msg = "Invalid explorer option '" + label + "'";	  return false;	}    }  return true;}//---------------------------------------------------------------------------bool PrintHeader(const string& fname,		 const TExplorerParams& eparams,		 const string& def_cmd_line, const string& conf_cmd_line, 		 ofstream& fout, 		 string& error_msg){  fout.open(fname.c_str(), ios::out);  if (!fout)    {      error_msg = "Cannot create " + fname;      return false;    }  fout << "% fname: " << fname << endl       << "% " << eparams.simulator << " "       << conf_cmd_line << " " << def_cmd_line       << endl << endl;  return true;}//---------------------------------------------------------------------------bool PrintMatlabFunction(const string& mfname,			 ofstream& fout, 			 string& error_msg){  fout << "function [max_pir, max_throughput, min_delay] = " << mfname << "(symbol)" << endl       << endl;  return true;}//---------------------------------------------------------------------------bool ReadResults(const string& fname, 		 TSimulationResults& sres, 		 string& error_msg){  ifstream fin(fname.c_str(), ios::in);  if (!fin)    {      error_msg = "Cannot read " + fname;      return false;    }  int nread = 0;  while (!fin.eof())    {      string line;      getline(fin, line);      uint pos;            pos = line.find(RPACKETS_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(RPACKETS_LABEL).size()));	  iss >> sres.rpackets;	  continue;	}            pos = line.find(RFLITS_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(RFLITS_LABEL).size()));	  iss >> sres.rflits;	  continue;	}      pos = line.find(AVG_DELAY_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(AVG_DELAY_LABEL).size()));	  iss >> sres.avg_delay;	  continue;	}      pos = line.find(AVG_THROUGHPUT_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(AVG_THROUGHPUT_LABEL).size()));	  iss >> sres.avg_throughput;	  continue;	}      pos = line.find(THROUGHPUT_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(THROUGHPUT_LABEL).size()));	  iss >> sres.throughput;	  continue;	}      pos = line.find(MAX_DELAY_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(MAX_DELAY_LABEL).size()));	  iss >> sres.max_delay;	  continue;	}      pos = line.find(TOTAL_ENERGY_LABEL);      if (pos != string::npos) 	{	  nread++;	  istringstream iss(line.substr(pos + string(TOTAL_ENERGY_LABEL).size()));	  iss >> sres.total_energy;	  continue;	}    }  if (nread != 7)    {      error_msg = "Output file " + fname + " corrupted";      return false;    }  return true;}//---------------------------------------------------------------------------bool RunSimulation(const string& cmd_base,		   const string& tmp_dir,		   TSimulationResults& sres, 		   string& error_msg){  string tmp_fname = tmp_dir + TMP_FILE_NAME;  string cmd = cmd_base + " >& " + tmp_fname;  cout << cmd << endl;  system(cmd.c_str());  if (!ReadResults(tmp_fname, sres, error_msg))    return false;  string rm_cmd = string("rm -f ") + tmp_fname;  system(rm_cmd.c_str());  return true;}//---------------------------------------------------------------------------bool RunSimulations(double start_time,		    pair<uint,uint>& sim_counter,		    const string& cmd, const string& tmp_dir, const int repetitions,		    const TConfiguration& aggr_conf, 		    ofstream& fout, 		    string& error_msg){  int    h, m, s;    for (int i=0; i<repetitions; i++)    {      cout << "# simulation " << (++sim_counter.first) << " of " << sim_counter.second;      if (i != 0)	cout << ", estimated time to finish " << h << "h " << m << "m " << s << "s";      cout << endl;      TSimulationResults sres;      if (!RunSimulation(cmd, tmp_dir, sres, error_msg))	return false;      double current_time = GetCurrentTime();      TimeToFinish(current_time-start_time, sim_counter.first, sim_counter.second, h, m, s);      // Print aggragated parameters      fout << "  ";      for (uint i=0; i<aggr_conf.size(); i++)	fout << setw(MATRIX_COLUMN_WIDTH) << aggr_conf[i].second;      // Print results;      fout << setw(MATRIX_COLUMN_WIDTH) << sres.avg_delay	   << setw(MATRIX_COLUMN_WIDTH) << sres.throughput	   << setw(MATRIX_COLUMN_WIDTH) << sres.max_delay	   << setw(MATRIX_COLUMN_WIDTH) << sres.total_energy	   << setw(MATRIX_COLUMN_WIDTH) << sres.rpackets	   << setw(MATRIX_COLUMN_WIDTH) << sres.rflits 	   << endl;    }  return true;}//---------------------------------------------------------------------------bool PrintMatlabVariableBegin(const TParametersSpace& aggragated_params_space, 			      ofstream& fout, string& error_msg){  fout << MATLAB_VAR_NAME << " = [" << endl;  fout << "% ";  for (TParametersSpace::const_iterator i=aggragated_params_space.begin();       i!=aggragated_params_space.end(); i++)    fout << setw(MATRIX_COLUMN_WIDTH) << i->first;  fout << setw(MATRIX_COLUMN_WIDTH) << "avg_delay"       << setw(MATRIX_COLUMN_WIDTH) << "throughput"       << setw(MATRIX_COLUMN_WIDTH) << "max_delay"       << setw(MATRIX_COLUMN_WIDTH) << "total_energy"       << setw(MATRIX_COLUMN_WIDTH) << "rpackets"       << setw(MATRIX_COLUMN_WIDTH) << "rflits";  fout << endl;  return true;}//---------------------------------------------------------------------------bool GenMatlabCode(const string& var_name,		   const int fig_no,		   const int repetitions, const int column,		   ofstream& fout, string& error_msg){  fout << var_name << " = [];" << endl       << "for i = 1:rows/" << repetitions << "," << endl       << "   ifirst = (i - 1) * " << repetitions << " + 1;" << endl       << "   ilast  = ifirst + " << repetitions << " - 1;" << endl       << "   tmp = " << MATLAB_VAR_NAME << "(ifirst:ilast, cols-6+" << column << ");" << endl       << "   avg = mean(tmp);" << endl       << "   [h sig ci] = ttest(tmp, 0.1);" << endl       << "   ci = (ci(2)-ci(1))/2;" << endl       << "   " << var_name << " = [" << var_name << "; " << MATLAB_VAR_NAME << "(ifirst, 1:cols-6), avg ci];" << endl       << "end" << endl       << endl;  fout << "figure(" << fig_no << ");" << endl       << "hold on;" << endl       << "plot(" << var_name << "(:,1), " << var_name << "(:,2), symbol);" << endl       << endl;  return true;}//---------------------------------------------------------------------------bool GenMatlabCodeSaturationAnalysis(const string& var_name,				     ofstream& fout, string& error_msg){  fout << endl        << "%-------- Saturation Analysis -----------" << endl       << "slope=[];"  << endl       << "for i=2:size(" << var_name << "_throughput,1),"  << endl       << "    slope(i-1) = (" << var_name << "_throughput(i,2)-" << var_name << "_throughput(i-1,2))/(" << var_name << "_throughput(i,1)-" << var_name << "_throughput(i-1,1));"  << endl       << "end"  << endl       << endl       << "for i=2:size(slope,2),"  << endl       << "    if slope(i) < (0.95*mean(slope(1:i)))"  << endl       << "        max_pir = " << var_name << "_throughput(i, 1);"  << endl       << "        max_throughput = " << var_name << "_throughput(i, 2);"  << endl       << "        min_delay = " << var_name << "_delay(i, 2);"  << endl       << "        break;"  << endl       << "    end"  << endl       << "end"  << endl;  return true;}//---------------------------------------------------------------------------bool PrintMatlabVariableEnd(const int repetitions,			    ofstream& fout, string& error_msg){  fout << "];" << endl << endl;  fout << "rows = size(" << MATLAB_VAR_NAME << ", 1);" << endl       << "cols = size(" << MATLAB_VAR_NAME << ", 2);" << endl       << endl;  if (!GenMatlabCode(string(MATLAB_VAR_NAME) + "_delay", 1,		     repetitions, 1, fout, error_msg))    return false;  if (!GenMatlabCode(string(MATLAB_VAR_NAME) + "_throughput", 2,		     repetitions, 2, fout, error_msg))    return false;  if (!GenMatlabCode(string(MATLAB_VAR_NAME) + "_maxdelay", 3,		     repetitions, 3, fout, error_msg))    return false;  if (!GenMatlabCode(string(MATLAB_VAR_NAME) + "_totalenergy", 4,		     repetitions, 4, fout, error_msg))    return false;  if (!GenMatlabCodeSaturationAnalysis(string(MATLAB_VAR_NAME), fout, error_msg))    return false;  return true;}//---------------------------------------------------------------------------bool RunSimulations(const TConfigurationSpace& conf_space,		    const TParameterSpace&     default_params,		    const TParametersSpace&    aggragated_params_space,		    const TParameterSpace&     explorer_params,		    string&                    error_msg){  TExplorerParams eparams;  if (!ExtractExplorerParams(explorer_params, eparams, error_msg))    return false;  // Make dafault parameters string  string def_cmd_line;  for (uint i=0; i<default_params.size(); i++)    def_cmd_line = def_cmd_line + default_params[i] + " ";  // Explore configuration space  TConfigurationSpace aggr_conf_space = Explore(aggragated_params_space);  pair<uint,uint> sim_counter(0, conf_space.size() * aggr_conf_space.size() * eparams.repetitions);    double start_time = GetCurrentTime();  for (uint i=0; i<conf_space.size(); i++)    {      string conf_cmd_line = Configuration2CmdLine(conf_space[i]);      string   mfname = Configuration2FunctionName(conf_space[i]);      string   fname  = mfname + ".m";      ofstream fout;      if (!PrintHeader(fname, eparams, 		       def_cmd_line, conf_cmd_line, fout, error_msg))	return false;      if (!PrintMatlabFunction(mfname, fout, error_msg))	return false;      if (!PrintMatlabVariableBegin(aggragated_params_space, fout, error_msg))	return false;      for (uint j=0; j<aggr_conf_space.size(); j++)	{	  string aggr_cmd_line = Configuration2CmdLine(aggr_conf_space[j]);	  string cmd = eparams.simulator + " "	    + def_cmd_line + " "	    + conf_cmd_line + " "	    + aggr_cmd_line;	  	  if (!RunSimulations(start_time,			      sim_counter, cmd, eparams.tmp_dir, eparams.repetitions,			      aggr_conf_space[j], fout, error_msg))	    return false;	}      if (!PrintMatlabVariableEnd(eparams.repetitions, fout, error_msg))	return false;    }  return true;}//---------------------------------------------------------------------------bool RunSimulations(const string& script_fname,		    string&       error_msg){  TParametersSpace ps;  if (!ParseConfigurationFile(script_fname, ps, error_msg))    return false;  TParameterSpace default_params;  if (!RemoveParameter(ps, DEFAULT_KEY, default_params, error_msg))    cout << "Warning: " << error_msg << endl;    TParameterSpace  aggregated_params;  TParametersSpace aggragated_params_space;  if (!RemoveParameter(ps, AGGREGATION_KEY, aggregated_params, error_msg))    cout << "Warning: " << error_msg << endl;  else    if (!RemoveAggregateParameters(ps, aggregated_params, 				  aggragated_params_space, error_msg))      return false;  TParameterSpace explorer_params;  if (!RemoveParameter(ps, EXPLORER_KEY, explorer_params, error_msg))    cout << "Warning: " << error_msg << endl;  TConfigurationSpace conf_space = Explore(ps);  if (!RunSimulations(conf_space, default_params, 		      aggragated_params_space, explorer_params, error_msg))    return false;  return true;}//---------------------------------------------------------------------------int main(int argc, char **argv){  if (argc < 2)    {      cout << "Usage: " << argv[0] << " <cfg file> [<cfg file>]" << endl;      return -1;    }  for (int i=1; i<argc; i++)    {      string fname(argv[i]);      cout << "# Exploring configuration space " << fname << endl;      string error_msg;      if (!RunSimulations(fname, error_msg))	cout << "Error: " << error_msg << endl;      cout << endl;    }  return 0;}//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久人人人人传媒| 精品少妇一区二区三区视频免付费 | 国产欧美在线观看一区| 自拍偷拍亚洲综合| 理论片日本一区| 91福利小视频| 国产日韩av一区| 免费在线观看视频一区| 91国偷自产一区二区三区成为亚洲经典 | 在线免费观看不卡av| 久久久精品国产免费观看同学| 欧美日韩国产首页在线观看| 欧美国产精品一区二区| 久久机这里只有精品| 色妞www精品视频| 日本一区二区三区视频视频| 久久99精品久久只有精品| 欧美三级日韩三级| 亚洲美女视频一区| 99久久精品国产毛片| 国产日韩精品一区二区三区在线| 国产成人精品亚洲日本在线桃色| 日韩一级视频免费观看在线| 亚洲成人午夜电影| 日本韩国精品一区二区在线观看| 91精品国产乱| 三级不卡在线观看| 91黄色激情网站| 欧美午夜不卡在线观看免费| 五月天网站亚洲| 亚洲人123区| 成人一区二区三区视频| 久久色视频免费观看| 黄色资源网久久资源365| 欧美一区二区日韩一区二区| 三级精品在线观看| 欧美精品一卡两卡| 午夜欧美一区二区三区在线播放| 欧美亚洲综合网| 亚洲一区二区在线免费观看视频| 在线观看日韩一区| 亚州成人在线电影| 7777精品伊人久久久大香线蕉完整版 | 精品中文字幕一区二区小辣椒| 精品亚洲国产成人av制服丝袜| 日韩精品一区二区三区视频播放| 久久激情五月婷婷| 国产午夜精品久久久久久免费视| 成人高清免费在线播放| 亚洲天堂av老司机| 欧美少妇一区二区| 蜜桃一区二区三区四区| 久久精品夜色噜噜亚洲a∨| 久久国产精品色| 亚洲综合久久久久| 美女视频网站黄色亚洲| 亚洲成人久久影院| 午夜影院久久久| 日产国产高清一区二区三区 | 一本一道波多野结衣一区二区| 亚洲三级理论片| 欧美精品日韩精品| 国产久卡久卡久卡久卡视频精品| 亚洲精选在线视频| 宅男在线国产精品| 粉嫩av一区二区三区在线播放 | 洋洋成人永久网站入口| 欧美日韩精品电影| 久久国产福利国产秒拍| 国产精品女人毛片| 666欧美在线视频| 成人一区二区三区视频| 日韩午夜激情免费电影| 不卡av在线免费观看| 91精品国产福利在线观看| 久久午夜国产精品| 亚洲色图欧美在线| 日韩中文字幕1| 日韩成人伦理电影在线观看| 亚洲欧美日韩中文字幕一区二区三区 | 日本欧美在线观看| 亚洲欧美激情小说另类| 这里是久久伊人| 91麻豆免费观看| 国产真实精品久久二三区| 日韩理论片中文av| 成人一区二区三区在线观看| 麻豆精品在线观看| 亚洲无人区一区| 国产精品美女久久久久aⅴ国产馆| 欧美电影在哪看比较好| 色综合久久精品| 岛国精品一区二区| 久久久亚洲午夜电影| 欧美精品日韩一本| 在线免费不卡视频| 一本大道久久a久久综合婷婷| 国产一区二区福利视频| 亚洲综合色在线| 国产精品久久久久婷婷二区次| 国产黄人亚洲片| 九九热在线视频观看这里只有精品| 亚洲v中文字幕| 亚洲黄色av一区| 亚洲精品视频免费看| 国产精品二区一区二区aⅴ污介绍| 国产99久久久国产精品潘金网站| 六月丁香婷婷色狠狠久久| 午夜欧美电影在线观看| 亚洲第一会所有码转帖| 一区二区久久久久久| 亚洲乱码国产乱码精品精98午夜 | 成人午夜激情影院| 精品一区二区三区视频在线观看| 日日夜夜免费精品视频| 午夜在线成人av| 性感美女极品91精品| 视频精品一区二区| 日韩精品一级二级 | 亚洲一区二区三区四区中文字幕| 亚洲色图制服丝袜| 亚洲精品视频在线观看免费| 洋洋av久久久久久久一区| 亚洲va欧美va天堂v国产综合| 欧美日本在线视频| 欧美一区二区成人6969| 欧美一级片在线| 精品国偷自产国产一区| 2021久久国产精品不只是精品| 久久久不卡影院| 国产精品高潮呻吟久久| 亚洲精品国产高清久久伦理二区| 欧美最新大片在线看| 欧美影院一区二区| 欧美一卡二卡三卡| 久久日一线二线三线suv| 欧美激情中文不卡| 久久欧美中文字幕| 视频一区二区三区中文字幕| 91久久线看在观草草青青| 国产成人av一区二区| 国产精品久久免费看| 国产麻豆午夜三级精品| 在线看不卡av| av在线播放不卡| 日本久久电影网| 欧美一级xxx| 一区二区视频免费在线观看| 日本伊人精品一区二区三区观看方式 | 91麻豆文化传媒在线观看| 日韩va亚洲va欧美va久久| 国产酒店精品激情| 欧美影片第一页| 精品国产3级a| 一区二区三区成人| 国产在线不卡一卡二卡三卡四卡| 91麻豆自制传媒国产之光| 日韩美女一区二区三区| 精品视频免费看| 欧美韩国日本不卡| 日韩电影在线免费看| 成人三级在线视频| 欧美一区二区三区免费视频| 亚洲欧美激情插 | www成人在线观看| 亚洲宅男天堂在线观看无病毒| 精品在线你懂的| 欧美三级电影一区| 中文字幕第一区二区| 日本不卡免费在线视频| 色婷婷国产精品| 欧美国产丝袜视频| 久久综合九色综合97_久久久| 欧美日韩国产综合一区二区三区 | 久久精品视频一区| 视频一区视频二区中文字幕| 亚洲欧美日韩人成在线播放| 国产麻豆一精品一av一免费| 欧美一区二区三区性视频| 伊人一区二区三区| 成人av在线电影| 精品国产一区二区三区av性色| 亚洲成人精品在线观看| 91视频一区二区三区| 91小宝寻花一区二区三区| 国产欧美一区视频| 国产精品原创巨作av| 日韩欧美国产三级| 免费观看一级特黄欧美大片| 欧美四级电影在线观看| 亚洲男人的天堂网| av电影一区二区| 国产精品久99| 成人av动漫在线| 国产精品国模大尺度视频| 国产成人综合自拍| 久久久久青草大香线综合精品| 激情深爱一区二区| 久久免费精品国产久精品久久久久| 欧美成人精精品一区二区频|