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