?? rules.cpp
字號:
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Revisions.....:
//===================================================================
#include <stdafx.h> // Precompiled headers.
#include <copyright.h>
#include <kernel/structures/rules.h>
#include <kernel/structures/informationvector.h>
#include <kernel/structures/reducts.h>
#include <kernel/algorithms/ruleevaluator.h>
#include <kernel/utilities/partitionkit.h>
#include <kernel/utilities/creator.h>
#include <kernel/utilities/discerner.h>
#include <kernel/basic/vector.h>
#include <kernel/basic/map.h>
#include <kernel/basic/bits.h>
#include <kernel/basic/algorithm.h>
#include <kernel/basic/message.h>
//-------------------------------------------------------------------
// Static stuff (file scope). Hack to use STL sorting.
//===================================================================
static bool static_compare_ascending_ = true;
static int static_compare_property_ = 0;
static int static_compare_no_objects_ = 0;
static Vector(int) *static_compare_decisions_ = NULL;
static Vector(int) *static_compare_cardinalities_ = NULL;
//-------------------------------------------------------------------
// Method........: StaticCreateVectors
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================
static bool
StaticCreateVectors(const DecisionTable &table, bool masked) {
// Instantiate vectors?
if (static_compare_decisions_ == NULL)
static_compare_decisions_ = new Vector(int);
if (static_compare_cardinalities_ == NULL)
static_compare_cardinalities_ = new Vector(int);
// Clear current contents.
static_compare_decisions_->erase(static_compare_decisions_->begin(), static_compare_decisions_->end());
static_compare_cardinalities_->erase(static_compare_cardinalities_->begin(), static_compare_cardinalities_->end());
// Determine decision attribute.
int decision_attribute = table.GetDecisionAttribute(masked);
if (decision_attribute == Undefined::Integer())
return false;
// Fill vectors.
if (!table.GetValueSet(*static_compare_decisions_, *static_compare_cardinalities_, decision_attribute, masked))
return false;
return true;
}
//-------------------------------------------------------------------
// Method........: StaticDestroyVectors
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Comments......:
// Revisions.....:
//===================================================================
static void
StaticDestroyVectors() {
#if 0 // Causes some weird debug assertion...
if (static_compare_decisions_ != NULL)
delete static_compare_decisions_;
if (static_compare_cardinalities_ != NULL)
delete static_compare_cardinalities_;
#endif
}
//-------------------------------------------------------------------
// STL comparator methods.
//===================================================================
//-------------------------------------------------------------------
// Method........: Comparison operator
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Compares two rules according to the value of
// one of their specified properties.
// Comments......: Assumes static stuff has been properly set.
// Revisions.....: A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -