Skip to content

Commit

Permalink
Python bindings for log semiring
Browse files Browse the repository at this point in the history
  • Loading branch information
yunesj committed Jul 30, 2016
1 parent 408a124 commit cd1588d
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/interfaces/python/opengm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
_solverDicts=[
(inference.adder.minimizer.solver.__dict__ , 'adder', 'minimizer' ),
(inference.adder.maximizer.solver.__dict__, 'adder', 'maximizer' ),
(inference.multiplier.integrator.solver.__dict__,'adder', 'integrator'),
(inference.multiplier.integrator.solver.__dict__,'adder', 'integrator'), # todo(jyunes) XXX should this be adder instead?
(inference.adder.logsumexp.solver.__dict__, 'adder', 'logsumexp'),
(inference.multiplier.minimizer.solver.__dict__, 'multiplier', 'minimizer' ),
(inference.multiplier.maximizer.solver.__dict__, 'multiplier', 'maximizer' ),
(inference.multiplier.integrator.solver.__dict__,'multiplier', 'integrator')
Expand Down
15 changes: 15 additions & 0 deletions src/interfaces/python/opengm/inference/inference.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <opengm/operations/minimizer.hxx>
#include <opengm/operations/maximizer.hxx>
#include <opengm/operations/integrator.hxx>
#include <opengm/operations/logsumexp.hxx>

#include "pyInference.hxx"
#include "pyIcm.hxx"
Expand Down Expand Up @@ -110,6 +111,7 @@ BOOST_PYTHON_MODULE_INIT(_inference) {
std::string minimizerString="minimizer";
std::string maximizerString="maximizer";
std::string integratorString="integrator";
std::string logsumexpString="logsumexp";
std::string substring,submoduleName,subsubmoduleName,subsubstring;
docstring_options doc_options(true,true,false);
scope current;
Expand Down Expand Up @@ -245,6 +247,19 @@ BOOST_PYTHON_MODULE_INIT(_inference) {
export_trbp<opengm::python::GmAdder,opengm::Integrator>();
//export_dynp<opengm::python::GmMultiplier,opengm::Maximizer>();
}
// logsumexp
{
subsubstring=logsumexpString;
subsubmoduleName = currentScopeName + std::string(".") + substring + std::string(".") + subsubstring ;
// Create the submodule, and attach it to the current scope.
object subsubmodule(borrowed(PyImport_AddModule(subsubmoduleName.c_str())));
submoduleScope.attr(subsubstring.c_str()) = subsubmodule;
//subsubmodule.attr("__package__")=subsubmoduleName.c_str();
scope subsubmoduleScope = subsubmodule;

export_bp<opengm::python::GmAdder,opengm::Logsumexp>();
export_bruteforce<opengm::python::GmAdder,opengm::Logsumexp>();
}
}
//multiplier
{
Expand Down
2 changes: 2 additions & 0 deletions src/interfaces/python/opengm/inference/pyBp.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "marginal_def_visitor.hxx"
#include <opengm/inference/messagepassing/messagepassing.hxx>
#include <param/message_passing_param.hxx>
#include <opengm/operations/logsumexp.hxx>


template<class GM,class ACC>
Expand Down Expand Up @@ -35,6 +36,7 @@ void export_bp(){
template void export_bp<opengm::python::GmAdder, opengm::Minimizer>();
template void export_bp<opengm::python::GmAdder, opengm::Maximizer>();
template void export_bp<opengm::python::GmAdder, opengm::Integrator>();
template void export_bp<opengm::python::GmAdder, opengm::Logsumexp>();
template void export_bp<opengm::python::GmMultiplier, opengm::Minimizer>();
template void export_bp<opengm::python::GmMultiplier, opengm::Maximizer>();
template void export_bp<opengm::python::GmMultiplier, opengm::Integrator>();
Expand Down
3 changes: 3 additions & 0 deletions src/interfaces/python/opengm/inference/pyBruteforce.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "inf_def_visitor.hxx"

#include <opengm/inference/bruteforce.hxx>
#include <opengm/operations/logsumexp.hxx>
#include <param/bruteforce_param.hxx>


Expand All @@ -12,6 +13,7 @@
#include <opengm/python/pythonfunction.hxx>



using namespace boost::python;

template<class GM,class ACC>
Expand Down Expand Up @@ -40,5 +42,6 @@ void export_bruteforce(){
}
template void export_bruteforce<opengm::python::GmAdder,opengm::Minimizer>();
template void export_bruteforce<opengm::python::GmAdder,opengm::Maximizer>();
template void export_bruteforce<opengm::python::GmAdder,opengm::Logsumexp>();
template void export_bruteforce<opengm::python::GmMultiplier,opengm::Minimizer>();
template void export_bruteforce<opengm::python::GmMultiplier,opengm::Maximizer>();

0 comments on commit cd1588d

Please sign in to comment.