Multiple changes: changes in build system, one workaround and one bug fix
[libdai.git] / README
diff --git a/README b/README
index 86261b6..6d39c57 100644 (file)
--- a/README
+++ b/README
@@ -2,8 +2,8 @@ libDAI  -  A free/open source C++ library for Discrete Approximate Inference
 
 -------------------------------------------------------------------------------
 
-Version:  0.2.7
-Date:     August 19, 2010
+Version:  git HEAD
+Date:     September 17, 2012 - or later
 See also: http://www.libdai.org
 
 -------------------------------------------------------------------------------
@@ -11,16 +11,12 @@ See also: http://www.libdai.org
 License
 
 libDAI is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
+terms of the BSD 2-clause license (also known as the FreeBSD license), which
+can be found in the accompanying LICENSE file.
 
-libDAI is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU General Public License for more details.
+[Note: up to and including version 0.2.7, libDAI was licensed under the GNU
+General Public License (GPL) version 2 or higher.]
 
-You should have received a copy of the GNU General Public License
-along with libDAI in the file COPYING. If not, see http://www.gnu.org/licenses/
 
 -------------------------------------------------------------------------------
 
@@ -30,19 +26,21 @@ If you write a scientific paper describing research that made substantive use
 of this library, please cite the following paper describing libDAI:
 
 Joris M. Mooij;
-libDAI: A free & open source C++ library for Discrete Approximate Inference in
-graphical models;
-Journal of Machine Learning Research, in press, 2010.
+libDAI: A free & open source C++ library for Discrete Approximate Inference in graphical models;
+Journal of Machine Learning Research, 11(Aug):2169-2173, 2010.
 
 In BiBTeX format (for your convenience):
 
-  @article{mooij2010libDAI,
-    author  = {Joris M. Mooij},
-    title   = {lib{DAI}: A free & open source {C}++ Library for {D}iscrete {A}pproximate {I}nference in graphical models},
-    journal = {Journal of Machine Learning Research},
-    volume  = {in press},
-    year    = 2010
-  }
+@article{Mooij_libDAI_10,
+  author    = {Joris M. Mooij},
+  title     = {lib{DAI}: A Free and Open Source {C++} Library for Discrete Approximate Inference in Graphical Models},
+  journal   = {Journal of Machine Learning Research},
+  year      = 2010,
+  month     = Aug,
+  volume    = 11,
+  pages     = {2169-2173},
+  url       = "http://www.jmlr.org/papers/volume11/mooij10a/mooij10a.pdf"
+}
 
 Moreover, as a personal note, I would appreciate it to be informed about any
 publications using libDAI at joris dot mooij at libdai dot org.
@@ -51,10 +49,10 @@ publications using libDAI at joris dot mooij at libdai dot org.
 
 About libDAI
 
-libDAI is a free/open source C++ library (licensed under GPL 2+) that provides
-implementations of various (approximate) inference methods for discrete
-graphical models. libDAI supports arbitrary factor graphs with discrete
-variables; this includes discrete Markov Random Fields and Bayesian Networks.
+libDAI is a free/open source C++ library that provides implementations of
+various (approximate) inference methods for discrete graphical models. libDAI
+supports arbitrary factor graphs with discrete variables; this includes
+discrete Markov Random Fields and Bayesian Networks.
 
 The library is targeted at researchers. To be able to use the library, a good
 understanding of graphical models is needed.
@@ -135,13 +133,14 @@ provides a command line interface and experimental python and octave interfaces
 Compatibility
 
 The code has been developed under Debian GNU/Linux with the GCC compiler suite.
-libDAI compiles successfully with g++ versions 3.4 up to 4.4.
+libDAI compiles successfully with g++ versions 3.4 up to 4.7 (both 32 and 64
+bits).
 
 libDAI has also been successfully compiled with MS Visual Studio 2008 under
-Windows (but not all build targets are supported yet) and with Cygwin under
-Windows.
+Windows, MS Visual Studio 2010 under Windows 64, and with Cygwin under Windows.
 
-Finally, libDAI has been compiled successfully on MacOS X.
+Finally, libDAI has been compiled successfully on MacOS X (both 32 and 64
+bits).
 
 Downloading libDAI
 
@@ -165,6 +164,8 @@ You need:
   * GNU make
   * recent boost C++ libraries (at least version 1.37; however, version 1.37
     shipped with Ubuntu 9.04 is known not to work)
+  * GMP library (or the Windows port called MPIR, for 64 bits builds MPIR 2.5.0
+    or higher is needed)
   * doxygen (only for building the documentation)
   * graphviz (only for using some of the libDAI command line utilities)
   * CImg library (only for building the image segmentation example)
@@ -172,7 +173,7 @@ You need:
 On Debian/Ubuntu, you can easily install the required packages with a single
 command:
 
-  apt-get install g++ make doxygen graphviz libboost-dev libboost-graph-dev libboost-program-options-dev libboost-test-dev cimg-dev
+  apt-get install g++ make doxygen graphviz libboost-dev libboost-graph-dev libboost-program-options-dev libboost-test-dev libgmp-dev cimg-dev
 
 (root permissions needed).
 
@@ -180,7 +181,7 @@ On Mac OS X (10.4 is known to work), these packages can be installed easily via
 MacPorts. If MacPorts is not already installed, install it according to the
 instructions at http://www.macports.org/. Then, a simple
 
-  sudo port install gmake boost doxygen graphviz
+  sudo port install gmake boost gmp doxygen graphviz
 
 should be enough to install everything that is needed.
 
@@ -193,7 +194,7 @@ Building boost under Cygwin
   * Download the latest boost libraries from http://www.boost.org
   * Build the required boost libraries using:
 
-        ./bootstrap.sh --with-libraries=program_options,math,graph,test --prefix=/boost_root/
+        ./bootstrap.sh –with-libraries=program_options,math,graph,test –prefix=/boost_root/
         ./bjam
 
   * In order to use dynamic linking, the boost .dll's should be somewhere in
@@ -201,7 +202,6 @@ Building boost under Cygwin
 
         export PATH=$PATH:/boost_root/stage/lib
 
-
 Building libDAI
 
 To build the libDAI source, first copy a template Makefile.* to Makefile.conf
@@ -223,7 +223,7 @@ If the build is successful, you can test the example program:
 
 or the more extensive test program:
 
-  tests/testdai --aliases tests/aliases.conf --filename tests/alarm.fg --methods JTREE_HUGIN BP_SEQMAX
+  tests/testdai –aliases tests/aliases.conf –filename tests/alarm.fg –methods JTREE_HUGIN BP_SEQMAX
 
 -------------------------------------------------------------------------------
 
@@ -235,6 +235,7 @@ You need:
 
   * A recent version of MicroSoft Visual Studio (2008 is known to work)
   * recent boost C++ libraries (version 1.37 or higher)
+  * GMP or MPIR library (for 64-bits builds, MPIR 2.5.0 or higher is needed)
   * GNU make (can be obtained from http://gnuwin32.sourceforge.net)
   * CImg library (only for building the image segmentation example)
 
@@ -261,8 +262,13 @@ Because building boost under Windows is tricky, I provide some guidance here.
   * The following command builds the boost libraries that are relevant for
     libDAI:
 
-        bjam --with-graph --with-math --with-program_options --with-test link=static runtime-link=shared
+        bjam –with-graph –with-math –with-program_options –with-test link=static runtime-link=shared
+
+Building GMP or MPIR under Windows
 
+Information about how to build GPR or MPIR under Windows can be found on the
+internet. The user has to update Makefile.WINDOWS in order to link with the GPR
+/MPIR libraries. Note that for 64-bit builds, MPIR 2.5.0 or higher is needed.
 
 Building libDAI
 
@@ -280,7 +286,7 @@ If the build is successful, you can test the example program:
 
 or the more extensive test program:
 
-  tests\testdai --aliases tests\aliases.conf --filename tests\alarm.fg --methods JTREE_HUGIN BP_SEQMAX
+  tests\testdai –aliases tests\aliases.conf –filename tests\alarm.fg –methods JTREE_HUGIN BP_SEQMAX
 
 -------------------------------------------------------------------------------
 
@@ -336,3 +342,4 @@ Install doxygen, graphviz and a TeX distribution and use
 to build the documentation. If the documentation is not clear enough, feel free
 to send me an email (or even better, to improve the documentation and send a
 patch!). The documentation can also be browsed online at http://www.libdai.org.
+