- Idea: a FactorGraph and a RegionGraph are often equipped with extra properties for nodes and edges. The code to initialize those is often quite similar; maybe this can be abstracted to classes like ExtFactorGraph and ExtRegionGraph (Ext stands for Extended), e.g. template class ExtFactorGraph : public FactorGraph { public: std::vector nodeProps; std::vector > edgeProps; // blabla } A disadvantage of this approach may be worse cachability. - http://www.boost.org/development/requirements.html#Design_and_Programming - Would it be a good idea to cache second-order neighborhoods (delta's) in BipGraph? - Would it be a good idea to add the variable label -> index hashmap in FactorGraph, to replace the linear searches that are performed every time for findVar()? No, a better idea is to avoid calls to findVar() as much as possible. - Can the FactorGraph constructors be optimized further? - Move FactorGraph::_normType somewhere else (maybe to InfAlg or DAIAlg) - Remove updatedFactor - Add Exceptions framework; this can e.g. be used as follows: if *.logZ() is called, it can return an exception if this method is not implemented, and the caller can catch this exception and handle it correctly. Then, you don't need a hasLogZ function/constant that tells whether this functionality is available. - Add an option to tests/test that it doesn't report the time needed; this is useful for the regression testing. DONE IN PREVIOUS COMMITS: - Added a few methods to BipartiteGraph - Improved ClusterGraph implementation (taken from SVN head) - Improved MaxSpanningTree algorithm (using boost::graph library, taken from SVN head) - Updated doxygen.conf - Made compatible with Visual C++ - Merged improved index.h from svn - Rename stateSpace -> states - Optimized Diffs - Renamed Regenerate() -> create() TODO FOR RELEASE: - Test Visual C++ compatibility - Figure out which libraries are required and document in README boost headers, boost::program_options library FILES IN SVN HEAD THAT ARE NO LONGER RELEVANT FOR GIT MASTER diffs.h index.h util.h util.cpp bipgraph.h weightedgraph.h clustergraph.h clustergraph.cpp varset.h var.h utils/createfg.cpp