Fixed NAN related bugs for Visual C++.
[libdai.git] / STATUS
1 - Idea: a FactorGraph and a RegionGraph are often equipped with
2 extra properties for nodes and edges. The code to initialize those
3 is often quite similar; maybe this can be abstracted to classes
4 like ExtFactorGraph and ExtRegionGraph (Ext stands for Extended), e.g.
5 template <typename NodeProperties, typename EdgeProperties>
6 class ExtFactorGraph : public FactorGraph {
7 public:
8 std::vector<NodeProperties> nodeProps;
9 std::vector<std::vector<EdgeProperties> > edgeProps;
10 // blabla
11 }
12 A disadvantage of this approach may be worse cachability.
13 - http://www.boost.org/development/requirements.html#Design_and_Programming
14 - Would it be a good idea to cache second-order neighborhoods (delta's) in BipGraph?
15 - Would it be a good idea to add the variable label -> index hashmap in FactorGraph,
16 to replace the linear searches that are performed every time for findVar()?
17 No, a better idea is to avoid calls to findVar() as much as possible.
18 - Can the FactorGraph constructors be optimized further?
19 - Move FactorGraph::_normType somewhere else (maybe to InfAlg or DAIAlg<T>)
20 - Remove updatedFactor
21 - Add Exceptions framework; this can e.g. be used as follows: if *.logZ() is
22 called, it can return an exception if this method is not implemented, and the
23 caller can catch this exception and handle it correctly. Then, you don't need
24 a hasLogZ function/constant that tells whether this functionality is available.
25 - Add an option to tests/test that it doesn't report the time needed; this is
26 useful for the regression testing.
27
28 DONE IN PREVIOUS COMMITS:
29 - Added a few methods to BipartiteGraph
30 - Improved ClusterGraph implementation (taken from SVN head)
31 - Improved MaxSpanningTree algorithm (using boost::graph library, taken from SVN head)
32 - Updated doxygen.conf
33 - Made compatible with Visual C++
34 - Merged improved index.h from svn
35 - Rename stateSpace -> states
36 - Optimized Diffs
37 - Renamed Regenerate() -> create()
38
39 TODO FOR RELEASE:
40 - Test Visual C++ compatibility
41 - Figure out which libraries are required and document in README
42 boost headers, boost::program_options library
43
44 FILES IN SVN HEAD THAT ARE NO LONGER RELEVANT FOR GIT MASTER
45 diffs.h
46 index.h
47 util.h
48 util.cpp
49 bipgraph.h
50 weightedgraph.h
51 clustergraph.h
52 clustergraph.cpp
53 varset.h
54 var.h
55 utils/createfg.cpp