added 4-way symbolic factor

fixed a bug in the bayes tree to graphviz routine
release/4.3a0
Kai Ni 2010-02-09 22:59:18 +00:00
parent e83b6c3b84
commit 31999ecb1f
2 changed files with 19 additions and 0 deletions

View File

@ -5,6 +5,7 @@
*/ */
#include <iostream> #include <iostream>
#include <fstream>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
#include <boost/tuple/tuple.hpp> #include <boost/tuple/tuple.hpp>
@ -59,6 +60,21 @@ namespace gtsam {
return ord; return ord;
} }
/* ************************************************************************* */
template<class Conditional>
void BayesNet<Conditional>::saveGraph(const std::string &s) const {
ofstream of(s.c_str());
of<< "digraph G{\n";
BOOST_FOREACH(sharedConditional conditional,conditionals_) {
Symbol child = conditional->key();
BOOST_FOREACH(const Symbol& parent,conditional->parents()) {
of << (string)parent << "->" << (string)child << endl;
}
}
of<<"}";
of.close();
}
/* ************************************************************************* */ /* ************************************************************************* */
template<class Conditional> template<class Conditional>

View File

@ -97,6 +97,9 @@ namespace gtsam {
inline const_reverse_iterator const rbegin() const {return conditionals_.rbegin();} inline const_reverse_iterator const rbegin() const {return conditionals_.rbegin();}
inline const_reverse_iterator const rend() const {return conditionals_.rend();} inline const_reverse_iterator const rend() const {return conditionals_.rend();}
/** saves the bayes to a text file in GraphViz format */
void saveGraph(const std::string& s) const;
private: private:
/** Serialization function */ /** Serialization function */
friend class boost::serialization::access; friend class boost::serialization::access;