Use a static method to create a FactorGraph

This commit is contained in:
Tiago Gomes
2013-03-14 16:57:34 +00:00
parent 2ef1651c6a
commit bc04d28092
3 changed files with 213 additions and 179 deletions

View File

@@ -86,10 +86,6 @@ class FactorGraph {
VarNode* getVarNode (VarId vid) const;
void readFromUaiFormat (const char*);
void readFromLibDaiFormat (const char*);
void addFactor (const Factor& factor);
void addVarNode (VarNode*);
@@ -110,6 +106,12 @@ class FactorGraph {
void exportToGraphViz (const char*) const;
FactorGraph& operator= (const FactorGraph&);
static FactorGraph readFromUaiFormat (const char*);
static FactorGraph readFromLibDaiFormat (const char*);
static bool exportToLibDai() { return exportLd_; }
static bool exportToUai() { return exportUai_; }
@@ -137,7 +139,7 @@ class FactorGraph {
private:
typedef std::unordered_map<unsigned, VarNode*> VarMap;
void ignoreLines (std::ifstream&) const;
void clone (const FactorGraph& fg);
bool containsCycle() const;
@@ -147,6 +149,8 @@ class FactorGraph {
bool containsCycle (const FacNode*, const VarNode*,
std::vector<bool>&, std::vector<bool>&) const;
static void ignoreLines (std::ifstream&);
VarNodes varNodes_;
FacNodes facNodes_;
VarMap varMap_;
@@ -157,8 +161,6 @@ class FactorGraph {
static bool exportUai_;
static bool exportGv_;
static bool printFg_;
DISALLOW_ASSIGN (FactorGraph);
};