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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? noxim_explorer.cpp.svn-base

?? NoC 仿真環(huán)境
?? SVN-BASE
?? 第 1 頁 / 共 2 頁
字號:
#include <iostream>#include <iomanip>#include <fstream>#include <sstream>#include <vector>#include <map>#include <string>#include <cassert>#include <cstdlib>#include <sys/time.h>using namespace std;//---------------------------------------------------------------------------#define DEFAULT_KEY          "default"#define AGGREGATION_KEY      "aggregation"#define EXPLORER_KEY         "explorer"#define SIMULATOR_LABEL      "simulator"#define REPETITIONS_LABEL    "repetitions"#define TMP_DIR_LABEL        "tmp"#define DEF_SIMULATOR        "./noxim"#define DEF_REPETITIONS      5#define DEF_TMP_DIR          "./"#define TMP_FILE_NAME        ".noxim_explorer.tmp"#define RPACKETS_LABEL       "% Total received packets:"#define RFLITS_LABEL         "% Total received flits:"#define AVG_DELAY_LABEL      "% Global average delay (cycles):"#define AVG_THROUGHPUT_LABEL "% Global average throughput (flits/cycle):"#define THROUGHPUT_LABEL     "% Throughput (flits/cycle/IP):"#define MAX_DELAY_LABEL      "% Max delay (cycles):"#define TOTAL_ENERGY_LABEL   "% Total energy (J):"#define MATLAB_VAR_NAME      "data"#define MATRIX_COLUMN_WIDTH  15//---------------------------------------------------------------------------typedef unsigned int uint;// parameter valuestypedef vector<string> TParameterSpace;// parameter name, parameter spacetypedef map<string, TParameterSpace> TParametersSpace;// parameter name, parameter valuetypedef vector<pair<string, string> > TConfiguration;typedef vector<TConfiguration> TConfigurationSpace;struct TExplorerParams{  string simulator;  string tmp_dir;  int    repetitions;};struct TSimulationResults{  double       avg_delay;  double       throughput;  double       avg_throughput;  double       max_delay;  double       total_energy;  unsigned int rpackets;  unsigned int rflits;};//---------------------------------------------------------------------------double GetCurrentTime(){  struct timeval tv;  gettimeofday(&tv, NULL);  return tv.tv_sec + (tv.tv_usec * 1.0e-6);}//---------------------------------------------------------------------------void TimeToFinish(double elapsed_sec,		  int completed, int total,		  int& hours, int& minutes, int &seconds){  double total_time_sec = (elapsed_sec * total)/completed;  double remain_time_sec = total_time_sec - elapsed_sec;  seconds = (int)remain_time_sec % 60;  minutes = ((int)remain_time_sec / 60) % 60;  hours   = (int)remain_time_sec / 3600;}//---------------------------------------------------------------------------bool IsComment(const string& s){  return (s == "" || s.at(0) == '%');}//---------------------------------------------------------------------------string TrimLeftAndRight(const string& s){  int len = s.length();    int i, j;  for (i=0; i<len && s.at(i) == ' '; i++) ;  for (j=len-1; j>=0 && s.at(j) == ' '; j--) ;    return s.substr(i,j-i+1);}//---------------------------------------------------------------------------bool ExtractParameter(const string& s, string& parameter){  uint i = s.find("[");  if (i != string::npos)    {      uint j = s.rfind("]");            if (j != string::npos)	{	  parameter = s.substr(i+1, j-i-1);	  return true;	}    }  return false;}//---------------------------------------------------------------------------bool GetNextParameter(ifstream& fin, string& parameter){  bool found = false;  while (!fin.eof() && !found)    {      string s;      getline(fin, s);      if (!IsComment(s))	found = ExtractParameter(s, parameter);    }  return found;}//---------------------------------------------------------------------------wstring MakeStopParameterTag(const string& parameter){  string sparameter = "[/" + parameter + "]";  return sparameter;}//---------------------------------------------------------------------------bool ManagePlainParameterSet(ifstream& fin,			     const string& parameter, 			     TParametersSpace& params_space,			     string& error_msg){  string str_stop = MakeStopParameterTag(parameter);  bool   stop = false;  while (!fin.eof() && !stop)    {      string s;      getline(fin, s);            if (!IsComment(s))	{	  if (s.find(str_stop) != string::npos)	    stop = true;	  else	    params_space[parameter].push_back(TrimLeftAndRight(s));	}    }    return true;}//---------------------------------------------------------------------------bool ExpandInterval(const string& sint,		    TParameterSpace& ps,		    string& error_msg){  istringstream iss(sint);  double min, max, step;  iss >> min;  iss >> max;  iss >> step;  for (double v=min; v<=max; v+=step)    {      ostringstream oss;      oss << v;      ps.push_back(oss.str());    }  return true;}//---------------------------------------------------------------------------bool ManageCompressedParameterSet(ifstream& fin,				  const string& parameter, 				  TParametersSpace& params_space,				  string& error_msg){  string str_stop = MakeStopParameterTag(parameter);  bool   stop = false;  while (!fin.eof() && !stop)    {      string s;      getline(fin, s);            if (!IsComment(s))	{	  if (s.find(str_stop) != string::npos)	    stop = true;	  else	  	    {	      if (!ExpandInterval(s, params_space[parameter], error_msg))		return false;	    }	}    }    return true;}//---------------------------------------------------------------------------bool ManageParameter(ifstream& fin,		     const string& parameter, 		     TParametersSpace& params_space,		     string& error_msg){  bool err;  if (parameter == "pir" ||      parameter == "por")    err = ManageCompressedParameterSet(fin, parameter, params_space, error_msg);  else    err = ManagePlainParameterSet(fin, parameter, params_space, error_msg);  return err;}//---------------------------------------------------------------------------bool ParseConfigurationFile(const string& fname,			    TParametersSpace& params_space,			    string& error_msg){  ifstream fin(fname.c_str(), ios::in);  if (!fin)    {      error_msg = "Cannot open " + fname;      return false;    }  while (!fin.eof())    {      string parameter;      if ( GetNextParameter(fin, parameter) )	{	  if (!ManageParameter(fin, parameter, params_space,			       error_msg))	    return false;	}    }  return true;}//---------------------------------------------------------------------------bool LastCombination(const vector<pair<int,int> >& indexes){  for (uint i=0; i<indexes.size(); i++)    if (indexes[i].first < indexes[i].second-1)      return false;  return true;}//---------------------------------------------------------------------------bool IncrementCombinatorialIndexes(vector<pair<int,int> >& indexes){  for (uint i=0; i<indexes.size(); i++)    {      if (indexes[i].first < indexes[i].second - 1)	{	  indexes[i].first++;	  return true;	}      indexes[i].first = 0;	    }  return false;}//---------------------------------------------------------------------------TConfigurationSpace Explore(const TParametersSpace& params_space){  TConfigurationSpace conf_space;    vector<pair<int,int> > indexes; // <index, max_index>    for (TParametersSpace::const_iterator psi=params_space.begin();       psi!=params_space.end(); psi++)      indexes.push_back(pair<int,int>(0, psi->second.size()));    do     {      int i = 0;      TConfiguration conf;      for (TParametersSpace::const_iterator psi=params_space.begin();	   psi!=params_space.end(); psi++)	{	  conf.push_back( pair<string,string>(psi->first, 					      psi->second[indexes[i].first]));	  	  i++;	}      conf_space.push_back(conf);    }   while (IncrementCombinatorialIndexes(indexes));  return conf_space;}//---------------------------------------------------------------------------bool RemoveParameter(TParametersSpace& params_space, 		     const string& param_name,		     TParameterSpace& param_space,		     string& error_msg){  TParametersSpace::iterator i = params_space.find(param_name);  if (i == params_space.end())    {      error_msg = "Cannot extract parameter '" + param_name + "'";      return false;    }  param_space = params_space[param_name];  params_space.erase(i);    return true;}//---------------------------------------------------------------------------bool RemoveAggregateParameters(TParametersSpace& params_space, 			       TParameterSpace&  aggregated_params,			       TParametersSpace& aggragated_params_space,			       string& error_msg){  for (uint i=0; i<aggregated_params.size(); i++)    {      string param_name = aggregated_params[i];      TParameterSpace param_space;      if (!RemoveParameter(params_space, param_name, param_space, error_msg))	return false;      aggragated_params_space[param_name] = param_space;    }  return true;}//---------------------------------------------------------------------------string ParamValue2Cmd(const pair<string,string>& pv){  string cmd;  if (pv.first == "topology")    {      istringstream iss(pv.second);      int  width, height;      char times;      iss >> width >> times >> height;      ostringstream oss;      oss << "-dimx " << width << " -dimy " << height;      cmd = oss.str();    }  else    cmd = "-" + pv.first + " " + pv.second;  return cmd;}//---------------------------------------------------------------------------string Configuration2CmdLine(const TConfiguration& conf){  string cl;  for (uint i=0; i<conf.size(); i++)    cl = cl + ParamValue2Cmd(conf[i]) + " ";    return cl;}//---------------------------------------------------------------------------string Configuration2FunctionName(const TConfiguration& conf){  string fn;  for (uint i=0; i<conf.size(); i++)    fn = fn + conf[i].first + "_" + conf[i].second + "__";    // Replace " ", "-", ".", "/" with "_"  int len = fn.length();  for (int i=0; i<len; i++)    if (fn.at(i) == ' ' || fn.at(i) == '.' || fn.at(i) == '-' || fn.at(i) == '/')      fn[i] = '_';    return fn;}//---------------------------------------------------------------------------bool ExtractExplorerParams(const TParameterSpace& explorer_params,			   TExplorerParams& eparams,			   string& error_msg){  eparams.simulator   = DEF_SIMULATOR;  eparams.tmp_dir     = DEF_TMP_DIR;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜国产一区99re久久| 日韩在线观看一区二区| 蜜桃精品在线观看| 国产成人av自拍| 欧美精品国产精品| 亚洲大片在线观看| 99精品黄色片免费大全| 国产区在线观看成人精品| 国产露脸91国语对白| 国产三级精品在线| 成人v精品蜜桃久久一区| 国产区在线观看成人精品| 成人毛片在线观看| 国产精品拍天天在线| 成人h动漫精品| 成人免费一区二区三区在线观看| 99国产欧美久久久精品| 亚洲少妇屁股交4| 欧美三级一区二区| 午夜精品久久久久久久蜜桃app| 在线成人小视频| 韩国女主播一区| 国产精品日韩成人| 欧美日韩三级一区| 在线观看视频一区二区欧美日韩| 91精品国产综合久久久久久漫画 | 91福利在线看| 色婷婷综合激情| 69av一区二区三区| 制服.丝袜.亚洲.中文.综合| 国产欧美精品国产国产专区 | 91影视在线播放| 亚洲综合精品自拍| 日韩一区二区三区高清免费看看| 国产成人精品亚洲午夜麻豆| 精品国产不卡一区二区三区| 国产精品一二一区| 亚洲欧洲综合另类在线| 欧美日韩一区二区在线观看| 人人精品人人爱| 中文字幕不卡三区| 在线播放视频一区| 成人黄色片在线观看| 亚洲精品乱码久久久久久| 成人午夜视频福利| 亚洲成在人线免费| 国产女同性恋一区二区| 欧美偷拍一区二区| 国产成人av在线影院| 亚洲国产毛片aaaaa无费看 | 成人av一区二区三区| 亚洲mv大片欧洲mv大片精品| 久久亚洲免费视频| 在线观看一区二区视频| 日本 国产 欧美色综合| 亚洲国产经典视频| 欧美优质美女网站| 国产不卡视频在线观看| 亚洲午夜精品在线| 中文一区在线播放| 欧美成人激情免费网| 91亚洲精品久久久蜜桃网站| 激情综合色综合久久综合| 一区二区三区精品在线观看| 久久蜜桃av一区二区天堂| 欧美日韩在线观看一区二区 | av不卡在线观看| 蜜桃av一区二区三区电影| 亚洲精品国产无天堂网2021| 国产午夜精品一区二区三区嫩草| 欧美日韩国产一二三| 99r精品视频| 成人黄色在线网站| 激情亚洲综合在线| 夜夜亚洲天天久久| 亚洲人成网站色在线观看| 国产亚洲精品bt天堂精选| 91精品国产综合久久久蜜臀粉嫩| 91一区二区三区在线观看| 丁香婷婷综合网| 久久精品国产免费看久久精品| 亚洲成av人片一区二区梦乃| 亚洲蜜臀av乱码久久精品蜜桃| 久久久久久久免费视频了| 91精品国产综合久久久蜜臀图片 | 91麻豆免费观看| av激情综合网| av一区二区不卡| 久久综合国产精品| 91视频在线观看免费| 粉嫩绯色av一区二区在线观看| 奇米四色…亚洲| 免费在线观看一区| 亚洲精品日韩一| 一区二区三区在线不卡| 亚洲男人的天堂在线观看| 亚洲天堂久久久久久久| 最新日韩av在线| **网站欧美大片在线观看| 欧美韩日一区二区三区| 国产精品你懂的| 国产精品久久久久影院色老大| 日韩情涩欧美日韩视频| 亚洲精品在线电影| 日本一区二区三区免费乱视频| 国产精品家庭影院| 亚洲欧美视频一区| 亚洲一区二区av电影| 日韩电影在线看| 九九在线精品视频| 久久国产精品99精品国产| 久久精品一二三| 中文字幕精品综合| 亚洲视频一区二区在线| 一区二区三区在线播放| 麻豆极品一区二区三区| 国产原创一区二区三区| 99re热这里只有精品免费视频| 欧美专区日韩专区| 欧美丰满少妇xxxxx高潮对白| www久久精品| 中文字幕日韩精品一区| 中文字幕巨乱亚洲| 亚洲成人一区在线| 久久99精品久久久久| 99久久er热在这里只有精品66| 国产美女精品人人做人人爽| 国产精品第四页| 午夜精品一区二区三区电影天堂 | 亚洲一区二区在线观看视频| 日本不卡在线视频| 99综合电影在线视频| 91免费视频观看| 亚洲黄一区二区三区| 国产精品狼人久久影院观看方式| 亚洲人吸女人奶水| 奇米一区二区三区| 97久久精品人人爽人人爽蜜臀| 欧美喷潮久久久xxxxx| 亚洲综合在线免费观看| 视频一区二区三区在线| 成人免费视频一区二区| 成人伦理片在线| 91麻豆精品91久久久久同性| 爽爽淫人综合网网站| 国产99久久久精品| 国产精品天天看| 9i看片成人免费高清| 欧美一区二区三区影视| 欧美日韩激情一区二区| 亚洲黄色小说网站| 粉嫩aⅴ一区二区三区四区| 日韩美女一区二区三区| 亚洲精品第1页| 久久激五月天综合精品| 欧美精品三级日韩久久| 国产精品免费aⅴ片在线观看| 国内成人免费视频| 欧美一二三在线| 亚洲一区二区在线免费观看视频 | 欧美性xxxxx极品少妇| xvideos.蜜桃一区二区| 一区二区三区高清在线| 波多野结衣在线一区| 欧美日韩三级一区| 亚洲少妇屁股交4| 成人午夜私人影院| 裸体歌舞表演一区二区| 色播五月激情综合网| 亚洲精品日韩综合观看成人91| 色综合一区二区| 亚洲女同ⅹxx女同tv| 日本韩国欧美在线| 亚洲一区二区三区自拍| 欧美综合一区二区| 亚洲一区在线视频观看| 欧美日韩亚洲另类| 日韩国产在线一| 日韩欧美国产综合一区 | 国产日韩视频一区二区三区| 国产成人鲁色资源国产91色综| 国产午夜精品一区二区三区嫩草 | 99热精品一区二区| 一区二区三区在线看| 欧美精选午夜久久久乱码6080| 亚洲第一福利一区| 精品国产一区久久| 成人精品一区二区三区四区 | 日韩欧美在线综合网| 极品销魂美女一区二区三区| 久久久国产精品午夜一区ai换脸| 国产电影精品久久禁18| 中文字幕日韩精品一区| 欧美日韩亚洲综合一区| 理论片日本一区| 最新国产成人在线观看| 欧美亚洲自拍偷拍| 精品一区二区影视| 综合久久综合久久| 91精品国产综合久久久久久 |