Improved documentation of bipgraph.h and added example_bipgraph.cpp
[libdai.git] / src / factorgraph.cpp
index 7834467..f361636 100644 (file)
@@ -1,6 +1,7 @@
-/*  Copyright (C) 2006-2008  Joris Mooij  [j dot mooij at science dot ru dot nl]
-    Radboud University Nijmegen, The Netherlands
-    
+/*  Copyright (C) 2006-2008  Joris Mooij  [joris dot mooij at tuebingen dot mpg dot de]
+    Radboud University Nijmegen, The Netherlands /
+    Max Planck Institute for Biological Cybernetics, Germany
+
     This file is part of libDAI.
 
     libDAI is free software; you can redistribute it and/or modify
     This file is part of libDAI.
 
     libDAI is free software; you can redistribute it and/or modify
@@ -40,31 +41,30 @@ using namespace std;
 
 FactorGraph::FactorGraph( const std::vector<Factor> &P ) : G(), _backup() {
     // add factors, obtain variables
 
 FactorGraph::FactorGraph( const std::vector<Factor> &P ) : G(), _backup() {
     // add factors, obtain variables
-    set<Var> _vars;
+    set<Var> varset;
     _factors.reserve( P.size() );
     size_t nrEdges = 0;
     for( vector<Factor>::const_iterator p2 = P.begin(); p2 != P.end(); p2++ ) {
         _factors.push_back( *p2 );
     _factors.reserve( P.size() );
     size_t nrEdges = 0;
     for( vector<Factor>::const_iterator p2 = P.begin(); p2 != P.end(); p2++ ) {
         _factors.push_back( *p2 );
-        copy( p2->vars().begin(), p2->vars().end(), inserter( _vars, _vars.begin() ) );
+        copy( p2->vars().begin(), p2->vars().end(), inserter( varset, varset.begin() ) );
         nrEdges += p2->vars().size();
     }
 
         nrEdges += p2->vars().size();
     }
 
-    // add _vars
-    vars.reserve( _vars.size() );
-    for( set<Var>::const_iterator p1 = _vars.begin(); p1 != _vars.end(); p1++ )
-        vars.push_back( *p1 );
+    // add vars
+    _vars.reserve( varset.size() );
+    for( set<Var>::const_iterator p1 = varset.begin(); p1 != varset.end(); p1++ )
+        _vars.push_back( *p1 );
 
     // create graph structure
 
     // create graph structure
-    createGraph( nrEdges );
+    constructGraph( nrEdges );
 }
 
 
 }
 
 
-/// Part of constructors (creates edges, neighbours and adjacency matrix)
-void FactorGraph::createGraph( size_t nrEdges ) {
+void FactorGraph::constructGraph( size_t nrEdges ) {
     // create a mapping for indices
     hash_map<size_t, size_t> hashmap;
     
     // create a mapping for indices
     hash_map<size_t, size_t> hashmap;
     
-    for( size_t i = 0; i < vars.size(); i++ )
+    for( size_t i = 0; i < vars().size(); i++ )
         hashmap[var(i).label()] = i;
     
     // create edge list
         hashmap[var(i).label()] = i;
     
     // create edge list
@@ -77,10 +77,11 @@ void FactorGraph::createGraph( size_t nrEdges ) {
     }
 
     // create bipartite graph
     }
 
     // create bipartite graph
-    G.create( nrVars(), nrFactors(), edges.begin(), edges.end() );
+    G.construct( nrVars(), nrFactors(), edges.begin(), edges.end() );
 }
 
 
 }
 
 
+/// Writes a FactorGraph to an output stream
 ostream& operator << (ostream& os, const FactorGraph& fg) {
     os << fg.nrFactors() << endl;
 
 ostream& operator << (ostream& os, const FactorGraph& fg) {
     os << fg.nrFactors() << endl;
 
@@ -110,6 +111,7 @@ ostream& operator << (ostream& os, const FactorGraph& fg) {
 }
 
 
 }
 
 
+/// Reads a FactorGraph from an input stream
 istream& operator >> (istream& is, FactorGraph& fg) {
     long verbose = 0;
 
 istream& operator >> (istream& is, FactorGraph& fg) {
     long verbose = 0;
 
@@ -451,7 +453,7 @@ FactorGraph FactorGraph::maximalFactors() const {
     for( size_t I = 0; I < nrFactors(); I++ )
         facs[newindex[maxfac[I]]] *= factor(I);
 
     for( size_t I = 0; I < nrFactors(); I++ )
         facs[newindex[maxfac[I]]] *= factor(I);
 
-    return FactorGraph( facs.begin(), facs.end(), vars.begin(), vars.end(), facs.size(), nrVars() );
+    return FactorGraph( facs.begin(), facs.end(), vars().begin(), vars().end(), facs.size(), nrVars() );
 }
 
 
 }