Replaced ENUM2,ENUM3,ENUM4,ENUM5,ENUM6 by single DAI_ENUM macro.
[libdai.git] / ChangeLog
1 libDAI-0.2.2 (2008-??-??)
2 -------------------------
3
4 * Now compiles also under Visual C++.
5 * Added Exceptions framework.
6 * Replaced ENUM2,ENUM3,ENUM4,ENUM5,ENUM6 by single DAI_ENUM macro.
7 * Added more features to utils/createfg for creating factor graphs.
8 * Pervasive change of BipartiteGraph implementation (based on an idea by
9 Giuseppe Passino). BipartiteGraph no longer stores the node properties
10 (former _V1 and _V2), nor does it store a dense adjacency matrix anymore,
11 nor an edge list. Instead, it stores the graph structure as lists of
12 neighboring nodes. This yields a significant memory/speed improvement for
13 large factor graphs, and is more elegant as well. Iterating over neighbors is
14 made easy by using boost::foreach.
15 * Improved index.h (merged from SVN head):
16 - Renamed Index -> IndexFor
17 - Added some .reserve()'s to IndexFor methods which yields a
18 25% speedup of testregression
19 - Replaced multind by Permute
20 - Added MultiFor
21 - Added State
22 * Moved everything into namespace "dai"
23 * Renamed DEBUG to DAI_DEBUG to avoid conflicts
24 * Added conditional compilation of inference methods
25 * Contributions by Peter Gober:
26 - Renamed variable _N in mr.* for compatibility with g++ under cygwin
27 * Contributions by Giuseppe Passino:
28 - removed "using namespace std;" from header files - bad practice
29 - moved header files in include/dai and sources in src
30 - changed #ifndefs to GNU style
31 - added extra warning checks (-W -Wextra) and fixed resulting warnings
32 - dai::TProb:
33 o removed copy constructor and assignment operators (redundant)
34 o implementation of some methods via STL algorithms
35 o added methods takeExp, takeLog, takeLog0 for transformation in-place
36 o explicit constructor (prevents implicit conversion from size_t to TProb)
37 o added operator+,+=,-,-=, with argument T (for calculations in log-scale)
38 - Added "logdomain" property to BP, a boolean that controls whether
39 calculations are done in the log-domain or in the linear domain;
40 doing calculations in the log-domain may help if the numerical range
41 of a double is too small.
42 * Contributions by Christian Wojek:
43 - New FactorGraph constructor that constructs from given ranges of factors
44 and variables
45 - Optimization of FactorGraph constructors using tr1::unordered_map.
46 * FactorGraph constructors no longer check for short loops (huge speed
47 increase for large factor graphs), nor for negative entries. Also, the
48 normtype is now Prob::NORMPROB by default.
49 * VarSet is now implemented using a std::vector<Var> instead of a
50 std::set<Var>, which yields a significant speed improvement.
51 * Improved MaxSpanningTreePrims algorithm (uses boost::graph)
52 * Small optimization in Diffs
53 * Improved ClusterGraph implementation, yielding significant speedups
54 for the JunctionTree algorithm on large factorgraphs.
55 * Improved documetation
56 * Interface changes:
57 - VarSet::
58 stateSpace() -> states()
59 VarSet( const std::set<Var> ) -> VarSet( begin, end, sizeHint=0 )
60 VarSet( const std::vector<Var> ) -> VarSet( begin, end, sizeHint=0 )
61 removed bool operator||
62 operator&&(const VarSet&) -> intersects(const VarSet&)
63 operator&&(const Var&) -> contains(const Var&)
64 - FactorGraph::
65 delta(const Var &) -> delta(size_t)
66 Delta(const Var &) -> Delta(size_t)
67 makeCavity(const Var &) -> makeCavity(size_t)
68 vars() -> vars
69 factors() -> factors
70 removed MakeFactorCavity(size_t)
71 removed ExactMarginal(const VarSet &)
72 removed ExactlogZ()
73 moved isConnected() to BipartiteGraph
74 - RegionGraph::
75 nr_ORs() -> nrORs()
76 nr_IRs() -> nrIRs()
77 ORs() -> ORs
78 IRs() -> IRs
79 - *::Regenerate() -> *::create()
80 - Renamed Index -> IndexFor
81 - Diffs:
82 max() -> maxDiff()
83 max_size() -> maxSize()
84 - Prob::max() -> Prob::maxVal()
85 - Factor::max() -> Factor::maxVal()
86 - toc() in util.h now returns seconds as a double
87 - VarSet::operator&&
88
89
90 libDAI-0.2.1 (2008-05-26)
91 -------------------------
92
93 Bugfix release.
94 * added missing cstdio header in util.h
95 * fixed Properties in MR_CLAMPING_* and MR_EXACT_*
96 * added description of the factor graph fileformat
97 * improved Makefile
98
99
100 libDAI-0.2.0 (2006-11-30)
101 -------------------------
102
103 First public release.