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

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

?? cppruleexporter.cpp

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
bool
CPPRuleExporter::ExportData(ofstream &stream, const Structure &structure) const {

	int i, j, k;

	Message message;

	// Cast to already verified type (in Apply method).
	Handle<Rules> rules = dynamic_cast(Rules *, const_cast(Structure *, &structure));

	// Get originating decision table.
	Handle<DecisionTable> table = dynamic_cast(DecisionTable *, rules->FindParent(DECISIONTABLE));

	if (table == NULL) {
		message.Error("Could not trace back to the rules' originating decision table for a dictionary.");
		return false;
	}

	bool masked = true;

	int no_attributes = table->GetNoAttributes(masked);
	int decision_attribute = table->GetDecisionAttribute(masked);

	Vector(int) decisionvalues;
	Vector(int) cardinalities;

	table->GetValueSet(decisionvalues, cardinalities, decision_attribute, masked);

	// Write marker.
	stream << "//------------------------------------------------------------------" << endl;
	stream << "// The implementation (.cpp) file starts here."                       << endl;
	stream << "//==================================================================" << endl;
	stream << endl;

	// Write some general information.
	stream << "// Classifier generated by ROSETTA."                                                << endl;
	stream << "// Exported " << SystemKit::GetTimestamp() << " by " << SystemKit::GetUser() << "." << endl;
	stream << "//"                                                                                 << endl;
	stream << "// " << rules->GetName()                                                            << endl;
	stream << "// " << rules->GetNoRules() << " rules."                                            << endl;
	stream << endl;

	// Add #include section.
	stream << "// To do: Change the name below to whatever you named the header (.h) file." << endl;
	stream << "#include \"" << GetFilename() << "\"" << endl;
	stream << "#include <string.h> // strcmp." << endl;
	stream << "#include <limits.h> // INT_MAX." << endl;
	stream << endl;

	// Add #define section.
	stream << "//------------------------------------------------------------------" << endl;
	stream << "// Method........: Macros"                                            << endl;
	stream << "// Author........: Aleksander 豩rn"                                   << endl;
	stream << "// Date..........: " << SystemKit::GetTimestamp()                     << endl;
	stream << "// Description...:"                                                   << endl;
	stream << "//==================================================================" << endl;
	stream << endl;
	stream << "#define ROSETTALOOKUP(description, value) \\"                         << endl;
	stream << "if (0 == strcmp(text, description)) return value;"                    << endl;
	stream << endl;
	stream << "#define ROSETTAMATCH(attribute, value) \\"                            << endl;
	stream << "Match##attribute##(object.##attribute, value)"                        << endl;
	stream << endl;
	stream << "#define ROSETTAVOTE(";

	for (i = 0; i < decisionvalues.size(); i++) {
	  stream << "index" << i << ", votes" << i;
		if (i < decisionvalues.size() - 1)
			stream << ", ";
	}

	stream << ") \\"                                                                 << endl;
	stream << '{';

	for (i = 0; i < decisionvalues.size(); i++) {
	  stream << "votes[index" << i << "] += votes" << i << "; ";
	}

	stream << "no_matches++;}"                                                       << endl;
	stream << endl;

	// Add method header.
	stream << "//------------------------------------------------------------------"                    << endl;
	stream << "// Method........: Lookup methods"                                                       << endl;
	stream << "// Author........: Aleksander 豩rn"                                                      << endl;
	stream << "// Date..........: " << SystemKit::GetTimestamp()                                        << endl;
	stream << "// Description...: Converts symbolic values to integers."                                << endl;
	stream << "//=================================================================="                    << endl;
	stream << endl;

	for (i = 0; i < no_attributes; i++) {

		if (!table->IsCondition(i, masked) || !table->IsSymbolic(i, masked))
			continue;

		// Method name.
		stream << "int"                                                                                   << endl;
		stream << "ROSETTAObject::Lookup" << StaticGetName(*table, i, masked) << "(const char *text) {"   << endl;
		stream << endl;

		Vector(int) conditionvalues;

		table->GetValueSet(conditionvalues, cardinalities, i, masked);

		// Method body.
		for (j = 0; j < conditionvalues.size(); j++) {
			String description = table->GetDictionaryEntry(i, conditionvalues[j], masked);
			stream << "  ROSETTALOOKUP(\"" << description << "\", " << String(' ', 25 - description.GetLength()) << conditionvalues[j] << ')' << endl;
		}

		stream << endl;
		stream << "  return INT_MAX;"                                                                     << endl;
		stream << endl;
    stream << "}"                                                                                     << endl;
		stream << endl;

	}

	Map(int, int) decisionmap;

	for (i = 0; i < decisionvalues.size(); i++)
		decisionmap.insert(Pair(const int, int)(decisionvalues[i], i));

	// Build index map.

	int no_rules = rules->GetNoRules();

	// Add method header.
	stream << "//------------------------------------------------------------------"                    << endl;
	stream << "// Method........: Classify"                                                             << endl;
	stream << "// Author........: Aleksander 豩rn"                                                      << endl;
	stream << "// Date..........: " << SystemKit::GetTimestamp()                                        << endl;
	stream << "// Description...: Classifies an object using standard voting among"                     << endl;
	stream << "//                 a set of decision rules."                                             << endl;
	stream << "//"                                                                                      << endl;
	stream << "//                 Returns the number of matching rules. In-place is"                    << endl;
	stream << "//                 returned an array with the vote counts for each"                      << endl;
	stream << "//                 decision value. To map from array indices to decision"                << endl;
	stream << "//                 values, use the following legend:"                                    << endl;
	stream << "//"                                                                                      << endl;

	for (Map(int, int)::iterator it = decisionmap.begin(); it != decisionmap.end(); it++)
	  stream << "//                 " << (*it).second << " -> \"" << table->GetDictionaryEntry(decision_attribute, (*it).first, masked) << "\"" << endl;

	stream << "//"                                                                                      << endl;
	stream << "//=================================================================="                    << endl;
	stream << endl;
	stream << "int"                                                                                     << endl;
	stream << "ROSETTAClassifier::Classify(const ROSETTAObject &object, int votes[" << decisionvalues.size() << "]) const {" << endl;
	stream << endl;
	stream << "  int no_matches = 0;"                                                                   << endl;
	stream << endl;

	// Add array initialization.
	stream << "  for (int i = 0; i < " << decisionvalues.size() << "; i++)"                             << endl;
	stream << "    votes[i] = 0;"                                                                       << endl;

	stream << endl;

	bool has_issued_warning = false;

	// Add rules.
	for (i = 0; i < no_rules; i++) {

		if (!message.Progress("Exporting rules...", i, no_rules))
			break;

		Handle<Rule> rule  = rules->GetRule(i);
		int no_descriptors = rule->GetNoConditionDescriptors();
		int no_decisions   = rule->GetNoDecisionValues();

		// Quick sanity check.
		if (rule->GetDecisionAttribute() != decision_attribute) {
			if (!has_issued_warning) {
				message.Warning("Possible mismatch in table and rule set for decision attribute.", false);
				has_issued_warning = true;
			}
		}

		stream << "  if (";

		// Write if-part.
		for (j = 0; j < no_descriptors; j++) {

			int descriptor_attribute = rule->GetConditionAttribute(j);
			int descriptor_value     = rule->GetConditionValue(j);

			String name = StaticGetName(*table, descriptor_attribute, masked);

			// Method name and parameters.
			if (table->IsFloat(descriptor_attribute, masked))
				stream << "ROSETTAMATCH(" << name << ", " << table->GetDictionaryEntry(descriptor_attribute, descriptor_value, masked) << ')';
			else
				stream << "ROSETTAMATCH(" << name << ", " << descriptor_value << ')';

			if (j < no_descriptors - 1)
				stream << " && ";
			else
				stream << ')';

		}

		stream << endl;

		// Write then-part.
		stream << "    ROSETTAVOTE(";
		for (k = 0; k < decisionvalues.size(); k++) {
			bool did_vote = false;
			for (j = 0; j < no_decisions; j++) {
				int decision_value = rule->GetDecisionValue(j);
				int mapped_value   = decisionmap[decision_value];
				if (mapped_value == k) {
					stream << mapped_value << ", " << rule->GetSupport(j);
					did_vote = true;
					break;
				}
			}
			if (!did_vote) {
				stream << k << ", 0";
			}
			if (k < decisionvalues.size() - 1)
				stream << ", ";
		}
		stream << ')' << endl;
		stream << endl;

	}

	stream << "  return no_matches;" << endl;
	stream << endl;
	stream << '}' << endl;
	stream << endl;

	// Write marker.
	stream << "//------------------------------------------------------------------" << endl;
	stream << "// The implementation (.cpp) file ends here."                         << endl;
	stream << "//==================================================================" << endl;
	stream << endl;

	return true;

}

//-------------------------------------------------------------------
// Methods inherited from RuleExporter.
//===================================================================

//-------------------------------------------------------------------
// Method........: ExportRule
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================

bool
CPPRuleExporter::ExportRule(ofstream &/*stream*/, int /*rule_no*/, const Rule &/*rule*/) const {
	return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级韩国三级日本三斤| 一区二区三区日本| 亚洲国产精品久久一线不卡| 丰满放荡岳乱妇91ww| 欧美一区二区三区不卡| 亚洲与欧洲av电影| 91成人免费网站| 亚洲自拍偷拍图区| 国产欧美日韩视频在线观看| 精品一区二区三区免费观看| 日韩一区二区三区视频在线观看| 日本欧美一区二区在线观看| 欧美日本韩国一区| 日韩不卡一二三区| 一区二区在线看| 欧美一区二区日韩| 色999日韩国产欧美一区二区| 国产一区啦啦啦在线观看| 久久奇米777| 东方欧美亚洲色图在线| 日本亚洲三级在线| 亚洲成人777| 久久久国产午夜精品| 日韩一级视频免费观看在线| 欧美日韩在线播| 色久优优欧美色久优优| 成人精品国产福利| 亚洲午夜成aⅴ人片| 国产精品国产三级国产aⅴ无密码| 欧美中文字幕亚洲一区二区va在线| 麻豆精品久久精品色综合| www激情久久| 日本韩国一区二区三区视频| 成人小视频在线| 午夜精品久久久久久久99水蜜桃| 久久久久9999亚洲精品| 亚洲精品一区在线观看| 97久久超碰国产精品电影| 视频在线观看91| 久久精品亚洲国产奇米99| 日本韩国视频一区二区| 99re热视频精品| 91色婷婷久久久久合中文| 久久不见久久见免费视频7| 亚洲三级在线免费观看| 日韩女优av电影在线观看| 91福利在线看| 在线看日韩精品电影| 色婷婷av一区二区三区之一色屋| 韩国精品在线观看| 亚欧色一区w666天堂| 日韩高清不卡一区二区| 日韩国产一二三区| 久久成人综合网| 国产精品一区二区黑丝| 婷婷夜色潮精品综合在线| 亚洲成a人v欧美综合天堂下载 | 一区二区三区四区不卡视频| 一区二区在线观看免费| 午夜精品福利一区二区三区av| 男女视频一区二区| 亚洲自拍与偷拍| 蜜乳av一区二区三区| 国产精品夜夜嗨| 色综合久久天天综合网| 91精品国产全国免费观看| www一区二区| 亚洲欧美aⅴ...| 国产精品乱码一区二三区小蝌蚪| 91精品国产福利| 久久久久久久网| 亚洲人123区| 免费欧美日韩国产三级电影| 国产大陆亚洲精品国产| 国产精品一级片在线观看| 99国产精品视频免费观看| 欧美日本视频在线| 精品国产欧美一区二区| 成人欧美一区二区三区视频网页| 国产嫩草影院久久久久| 亚洲激情自拍偷拍| 久久99国产精品尤物| 在线观看成人免费视频| 精品国产一区二区精华| 亚洲激情图片qvod| 国内精品不卡在线| 在线免费观看不卡av| 精品国产乱码久久久久久牛牛| 国产精品久久久久久亚洲毛片| 五月天网站亚洲| 成人午夜视频福利| 91精品黄色片免费大全| 在线不卡一区二区| 欧美一区二区视频免费观看| 国产精品不卡在线| 美腿丝袜亚洲三区| 91国偷自产一区二区开放时间| 欧美tk丨vk视频| 国产日韩欧美精品综合| 天天色图综合网| 99精品热视频| 国产人久久人人人人爽| 日日摸夜夜添夜夜添亚洲女人| 不卡视频一二三四| 26uuu色噜噜精品一区二区| 午夜精品免费在线| 91国偷自产一区二区使用方法| 国产日韩欧美高清| 久久国产精品第一页| 欧美浪妇xxxx高跟鞋交| 尤物视频一区二区| 97超碰欧美中文字幕| 国产欧美一二三区| 久久成人免费网站| 欧美一级黄色大片| 天堂在线一区二区| 欧美色中文字幕| 日韩精品一区二区三区swag| 亚洲一区在线视频观看| 波多野结衣欧美| 欧美日本在线看| 一区二区三区在线观看网站| 国产精品亚洲一区二区三区妖精 | 亚洲宅男天堂在线观看无病毒| 成人免费黄色在线| 久久久久国产成人精品亚洲午夜| 久久福利视频一区二区| 欧美精品1区2区| 午夜视频在线观看一区二区三区 | 国产性色一区二区| 国产在线不卡视频| 精品美女一区二区| 精品一区二区久久| 日韩欧美一区二区不卡| 久久精品国产精品青草| 日韩欧美第一区| 精品中文字幕一区二区| 精品精品欲导航| 国内精品伊人久久久久av一坑| 精品久久一二三区| 国产一二精品视频| 国产欧美精品区一区二区三区| 国产精品亚洲一区二区三区在线| 久久先锋影音av鲁色资源网| 国产一区二三区| 日本一区二区视频在线观看| 成人激情文学综合网| 18成人在线观看| 91福利在线看| 日韩av高清在线观看| 日韩精品中文字幕一区二区三区| 91亚洲精品久久久蜜桃网站 | 国产99精品在线观看| 国产精品成人免费精品自在线观看 | 中文字幕 久热精品 视频在线| 亚洲va在线va天堂| 欧美一区二区三区在线| 免费三级欧美电影| 欧美xxxx老人做受| 丰满亚洲少妇av| 一区二区三区四区乱视频| 欧美一区二区三区在线观看 | 本田岬高潮一区二区三区| 亚洲精品视频免费观看| 91精品国产综合久久精品app| 久久精品国内一区二区三区| 久久精品水蜜桃av综合天堂| 色综合天天综合色综合av | 99re这里只有精品视频首页| 亚洲国产精品一区二区久久 | 91一区二区在线| 日本vs亚洲vs韩国一区三区 | 久久久777精品电影网影网| eeuss鲁片一区二区三区在线看| 亚洲制服丝袜一区| 久久日韩精品一区二区五区| 97久久精品人人澡人人爽| 日本v片在线高清不卡在线观看| 国产午夜三级一区二区三| 欧美影院一区二区三区| 国产一区二区三区免费看 | 日韩va亚洲va欧美va久久| 国产性色一区二区| 欧美日韩你懂的| 国产凹凸在线观看一区二区| 亚洲午夜日本在线观看| 久久久国产午夜精品| 欧美日韩一区视频| 成人午夜激情影院| 日本中文一区二区三区| 亚洲色图在线播放| 欧美精品一区二| 欧美日高清视频| www.成人在线| 另类专区欧美蜜桃臀第一页| 一区二区三区高清在线| 久久精品亚洲乱码伦伦中文 | 亚洲免费看黄网站| 久久精品视频一区二区三区| 欧美少妇xxx|