a532b030d5709741586ea232c49b9bf7249dd7ac
[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 A problem is if there are nog properties for nodes (type 1), nodes (type 2)
14 or edges. Maybe this can be solved using specializations, or using variadac
15 template arguments or something similar?
16 - BipartiteGraph::isConnected should be optimized.
17 - http://www.boost.org/development/requirements.html#Design_and_Programming
18 - Would it be a good idea to cache second-order neighborhoods (delta's) in BipGraph?
19 - Would it be a good idea to add the variable label -> index hashmap in FactorGraph,
20 to replace the linear searches that are performed every time for findVar()?
21 No, a better idea is to avoid calls to findVar() as much as possible.
22 - Can the FactorGraph constructors be optimized further?
23 - Remove x2x?
24 - Add iterations (like maxdiff, but counts iterations) to some algorithms
25 - A DAIAlg<T> should not inherit from a FactorGraph/RegionGraph, but should store a
26 reference to it
27
28 TODO FOR RELEASE:
29 - Test Visual C++ compatibility
30 - Figure out which libraries are required and document in README
31 boost headers, boost::program_options library, boost::graph library,
32 boost::math library (under Windows)
33 - Change email address
34
35 FILES IN SVN HEAD THAT ARE NO LONGER RELEVANT FOR GIT MASTER:
36 diffs.h
37 index.h
38 util.h
39 util.cpp
40 bipgraph.h
41 weightedgraph.h
42 weightedgraph.cpp
43 clustergraph.h
44 clustergraph.cpp
45 varset.h
46 var.h
47 utils/createfg.cpp
48 exceptions.h
49 exceptions.cpp
50 enum.h
51 doxygen.conf
52 example.cpp
53 FILEFORMAT
54 Makefile
55 exact.h
56 exact.cpp
57 alldai.h
58 alldai.cpp
59 properties.h
60 properties.cpp
61 factor.h
62 prob.h
63 factorgraph.h
64 factorgraph.cpp
65 regiongraph.h
66 regiongraph.cpp
67 daialg.h
68 daialg.cpp
69
70 FILES IN SVN HEAD THAT ARE STILL RELEVANT:
71 ChangeLog
72 README
73 TODO
74
75 bp.h
76 bp.cpp
77 hak.h
78 hak.cpp
79 jtree.h
80 jtree.cpp
81 lc.h
82 lc.cpp
83 mf.h
84 mf.cpp
85 mr.h
86 mr.cpp
87 treeep.h
88 treeep.cpp
89
90 matlab/*
91 tests/*
92 utils/*
93
94
95 DOCUMENTATION READY:
96 - bipgraph.h, bipgraph.cpp
97 - var.h