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>
38 #ifdef DAI_WITH_TREEEP
39 #include <dai/treeep.h>
42 #include <dai/jtree.h>
48 #include <dai/gibbs.h>
55 /// Namespace for libDAI
59 /// Constructs a new inference algorithm.
60 /** \param name The name of the inference algorithm (should be one of the names in DAINames).
61 * \param fg The FactorGraph that the algorithm should be applied to.
62 * \param opts A PropertySet specifying the options for the algorithm.
63 * \return Returns a pointer to the new InfAlg object; it is the responsibility of the caller to delete it later.
64 * \throw UNKNOWN_DAI_ALGORITHM if the requested name is not known/compiled in.
66 InfAlg
*newInfAlg( const std::string
&name
, const FactorGraph
&fg
, const PropertySet
&opts
);
69 /// Constructs a new inference algorithm.
70 /** \param nameOpts The name and options of the inference algorithm (should be in the format "name[key1=val1,key2=val2,...,keyn=valn]").
71 * \param fg The FactorGraph that the algorithm should be applied to.
72 * \return Returns a pointer to the new InfAlg object; it is the responsibility of the caller to delete it later.
73 * \throw UNKNOWN_DAI_ALGORITHM if the requested name is not known/compiled in.
74 * \todo Support aliases like in testdai.cpp
76 InfAlg
*newInfAlgFromString( const std::string
&nameOpts
, const FactorGraph
&fg
);
79 /// Contains the names of all inference algorithms compiled into libDAI.
80 static const char* DAINames
[] = {
94 #ifdef DAI_WITH_TREEEP
103 #ifdef DAI_WITH_GIBBS
113 } // end of namespace dai