1 libDAI-0.2.2 (2008-??-??)

2 -------------------------

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

83 libDAI-0.2.1 (2008-05-26)

84 -------------------------

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

93 libDAI-0.2.0 (2006-11-30)

94 -------------------------

96 First public release.