[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