Var: replace struct by a pair
This commit is contained in:
parent
532654baba
commit
d563fce952
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
namespace Horus {
|
namespace Horus {
|
||||||
|
|
||||||
std::unordered_map<VarId, VarInfo> Var::varsInfo_;
|
std::unordered_map<VarId, Var::VarInfo> Var::varsInfo_;
|
||||||
|
|
||||||
|
|
||||||
Var::Var (const Var* v)
|
Var::Var (const Var* v)
|
||||||
@ -51,7 +51,8 @@ std::string
|
|||||||
Var::label() const
|
Var::label() const
|
||||||
{
|
{
|
||||||
if (Var::varsHaveInfo()) {
|
if (Var::varsHaveInfo()) {
|
||||||
return Var::getVarInfo (varId_).label;
|
assert (Util::contains (varsInfo_, varId_));
|
||||||
|
return varsInfo_.find (varId_)->second.first;
|
||||||
}
|
}
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << "x" << varId_;
|
ss << "x" << varId_;
|
||||||
@ -64,7 +65,8 @@ States
|
|||||||
Var::states() const
|
Var::states() const
|
||||||
{
|
{
|
||||||
if (Var::varsHaveInfo()) {
|
if (Var::varsHaveInfo()) {
|
||||||
return Var::getVarInfo (varId_).states;
|
assert (Util::contains (varsInfo_, varId_));
|
||||||
|
return varsInfo_.find (varId_)->second.second;
|
||||||
}
|
}
|
||||||
States states;
|
States states;
|
||||||
for (unsigned i = 0; i < range_; i++) {
|
for (unsigned i = 0; i < range_; i++) {
|
||||||
@ -87,15 +89,6 @@ Var::addVarInfo (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
VarInfo
|
|
||||||
Var::getVarInfo (VarId vid)
|
|
||||||
{
|
|
||||||
assert (Util::contains (varsInfo_, vid));
|
|
||||||
return varsInfo_.find (vid)->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Var::varsHaveInfo()
|
Var::varsHaveInfo()
|
||||||
{
|
{
|
||||||
|
@ -12,19 +12,11 @@
|
|||||||
|
|
||||||
namespace Horus {
|
namespace Horus {
|
||||||
|
|
||||||
struct VarInfo {
|
|
||||||
VarInfo (std::string l, const States& sts)
|
|
||||||
: label(l), states(sts) { }
|
|
||||||
std::string label;
|
|
||||||
States states;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class Var {
|
class Var {
|
||||||
public:
|
public:
|
||||||
Var (const Var*);
|
Var (const Var*);
|
||||||
|
|
||||||
Var (VarId, unsigned, int = Constants::unobserved);
|
Var (VarId, unsigned range, int evidence = Constants::unobserved);
|
||||||
|
|
||||||
virtual ~Var() { };
|
virtual ~Var() { };
|
||||||
|
|
||||||
@ -57,13 +49,13 @@ class Var {
|
|||||||
static void addVarInfo (
|
static void addVarInfo (
|
||||||
VarId vid, std::string label, const States& states);
|
VarId vid, std::string label, const States& states);
|
||||||
|
|
||||||
static VarInfo getVarInfo (VarId vid);
|
|
||||||
|
|
||||||
static bool varsHaveInfo();
|
static bool varsHaveInfo();
|
||||||
|
|
||||||
static void clearVarsInfo();
|
static void clearVarsInfo();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
typedef std::pair<std::string, States> VarInfo;
|
||||||
|
|
||||||
VarId varId_;
|
VarId varId_;
|
||||||
unsigned range_;
|
unsigned range_;
|
||||||
int evidence_;
|
int evidence_;
|
||||||
|
Reference in New Issue
Block a user