1 /* This file is part of libDAI - http://www.libdai.org/
3 * libDAI is licensed under the terms of the GNU General Public License version
4 * 2, or (at your option) any later version. libDAI is distributed without any
5 * warranty. See the file COPYING for more details.
7 * Copyright (C) 2006-2009 Joris Mooij [joris dot mooij at libdai dot org]
8 * Copyright (C) 2006-2007 Radboud University Nijmegen, The Netherlands
13 /// \brief Main libDAI header file. It \#includes all other libDAI headers.
16 #ifndef __defined_libdai_alldai_h
17 #define __defined_libdai_alldai_h
21 #include <dai/daialg.h>
22 #include <dai/properties.h>
23 #include <dai/exactinf.h>
24 #include <dai/evidence.h>
25 #include <dai/emalg.h>
41 #ifdef DAI_WITH_TREEEP
42 #include <dai/treeep.h>
45 #include <dai/jtree.h>
51 #include <dai/gibbs.h>
58 /// Namespace for libDAI
62 /// Constructs a new inference algorithm.
63 /** \param name The name of the inference algorithm (should be one of the names in DAINames).
64 * \param fg The FactorGraph that the algorithm should be applied to.
65 * \param opts A PropertySet specifying the options for the algorithm.
66 * \return Returns a pointer to the new InfAlg object; it is the responsibility of the caller to delete it later.
67 * \throw UNKNOWN_DAI_ALGORITHM if the requested name is not known/compiled in.
69 InfAlg
*newInfAlg( const std::string
&name
, const FactorGraph
&fg
, const PropertySet
&opts
);
72 /// Constructs a new inference algorithm.
73 /** \param nameOpts The name and options of the inference algorithm (should be in the format "name[key1=val1,key2=val2,...,keyn=valn]").
74 * \param fg The FactorGraph that the algorithm should be applied to.
75 * \return Returns a pointer to the new InfAlg object; it is the responsibility of the caller to delete it later.
76 * \throw UNKNOWN_DAI_ALGORITHM if the requested name is not known/compiled in.
77 * \todo Support aliases like in testdai.cpp
79 InfAlg
*newInfAlgFromString( const std::string
&nameOpts
, const FactorGraph
&fg
);
82 /// Contains the names of all inference algorithms compiled into libDAI.
83 static const char* DAINames
[] = {
100 #ifdef DAI_WITH_TREEEP
103 #ifdef DAI_WITH_JTREE
109 #ifdef DAI_WITH_GIBBS
119 } // end of namespace dai