diff --git a/packages/CLPBN/horus/Var.cpp b/packages/CLPBN/horus/Var.cpp index d1a2354a1..10db3775f 100644 --- a/packages/CLPBN/horus/Var.cpp +++ b/packages/CLPBN/horus/Var.cpp @@ -5,7 +5,7 @@ namespace Horus { -std::unordered_map Var::varsInfo_; +std::unordered_map Var::varsInfo_; Var::Var (const Var* v) @@ -51,7 +51,8 @@ std::string Var::label() const { if (Var::varsHaveInfo()) { - return Var::getVarInfo (varId_).label; + assert (Util::contains (varsInfo_, varId_)); + return varsInfo_.find (varId_)->second.first; } std::stringstream ss; ss << "x" << varId_; @@ -64,7 +65,8 @@ States Var::states() const { if (Var::varsHaveInfo()) { - return Var::getVarInfo (varId_).states; + assert (Util::contains (varsInfo_, varId_)); + return varsInfo_.find (varId_)->second.second; } States states; 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 Var::varsHaveInfo() { diff --git a/packages/CLPBN/horus/Var.h b/packages/CLPBN/horus/Var.h index 2b8708fc3..9a265a241 100644 --- a/packages/CLPBN/horus/Var.h +++ b/packages/CLPBN/horus/Var.h @@ -12,19 +12,11 @@ namespace Horus { -struct VarInfo { - VarInfo (std::string l, const States& sts) - : label(l), states(sts) { } - std::string label; - States states; -}; - - class Var { public: Var (const Var*); - Var (VarId, unsigned, int = Constants::unobserved); + Var (VarId, unsigned range, int evidence = Constants::unobserved); virtual ~Var() { }; @@ -57,13 +49,13 @@ class Var { static void addVarInfo ( VarId vid, std::string label, const States& states); - static VarInfo getVarInfo (VarId vid); - static bool varsHaveInfo(); static void clearVarsInfo(); private: + typedef std::pair VarInfo; + VarId varId_; unsigned range_; int evidence_;