1 /* Copyright (C) 2006-2008 Joris Mooij [j dot mooij at science dot ru dot nl]
2 Radboud University Nijmegen, The Netherlands
4 This file is part of libDAI.
6 libDAI is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 libDAI is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with libDAI; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 #include <dai/alldai.h>
24 #include <dai/properties.h>
25 #include <dai/exceptions.h>
34 InfAlg
*newInfAlg( const string
&name
, const FactorGraph
&fg
, const PropertySet
&opts
) {
35 if( name
== ExactInf::Name
)
36 return new ExactInf (fg
, opts
);
38 if( name
== BP::Name
)
39 return new BP (fg
, opts
);
42 if( name
== MF::Name
)
43 return new MF (fg
, opts
);
46 if( name
== HAK::Name
)
47 return new HAK (fg
, opts
);
50 if( name
== LC::Name
)
51 return new LC (fg
, opts
);
54 if( name
== TreeEP::Name
)
55 return new TreeEP (fg
, opts
);
58 if( name
== JTree::Name
)
59 return new JTree (fg
, opts
);
62 if( name
== MR::Name
)
63 return new MR (fg
, opts
);
65 DAI_THROW(UNKNOWN_DAI_ALGORITHM
);
69 } // end of namespace dai