[opengm] 373/386: Python bindings for log semiring
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Aug 31 08:38:36 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/master
in repository opengm.
commit cd1588d9220946b0d173073393c9a5b17b4cecd9
Author: Jeffrey Yunes <jeff at yunes.us>
Date: Fri Jul 29 17:30:05 2016 -0700
Python bindings for log semiring
---
src/interfaces/python/opengm/__init__.py | 3 ++-
src/interfaces/python/opengm/inference/inference.cpp | 15 +++++++++++++++
src/interfaces/python/opengm/inference/pyBp.cxx | 2 ++
src/interfaces/python/opengm/inference/pyBruteforce.cxx | 3 +++
4 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/interfaces/python/opengm/__init__.py b/src/interfaces/python/opengm/__init__.py
index 8258c93..99350e1 100644
--- a/src/interfaces/python/opengm/__init__.py
+++ b/src/interfaces/python/opengm/__init__.py
@@ -19,7 +19,8 @@ import benchmark
_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')
diff --git a/src/interfaces/python/opengm/inference/inference.cpp b/src/interfaces/python/opengm/inference/inference.cpp
index 425bcd3..c7def6e 100644
--- a/src/interfaces/python/opengm/inference/inference.cpp
+++ b/src/interfaces/python/opengm/inference/inference.cpp
@@ -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"
@@ -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;
@@ -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
{
diff --git a/src/interfaces/python/opengm/inference/pyBp.cxx b/src/interfaces/python/opengm/inference/pyBp.cxx
index d0f757e..7172852 100644
--- a/src/interfaces/python/opengm/inference/pyBp.cxx
+++ b/src/interfaces/python/opengm/inference/pyBp.cxx
@@ -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>
@@ -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>();
diff --git a/src/interfaces/python/opengm/inference/pyBruteforce.cxx b/src/interfaces/python/opengm/inference/pyBruteforce.cxx
index 32f4a85..55cc270 100644
--- a/src/interfaces/python/opengm/inference/pyBruteforce.cxx
+++ b/src/interfaces/python/opengm/inference/pyBruteforce.cxx
@@ -3,6 +3,7 @@
#include "inf_def_visitor.hxx"
#include <opengm/inference/bruteforce.hxx>
+#include <opengm/operations/logsumexp.hxx>
#include <param/bruteforce_param.hxx>
@@ -12,6 +13,7 @@
#include <opengm/python/pythonfunction.hxx>
+
using namespace boost::python;
template<class GM,class ACC>
@@ -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>();
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opengm.git
More information about the debian-science-commits
mailing list