From 0705fbbcaf8f35888b60d498cbd49e919ab84e5b Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Thu, 1 Dec 2022 01:26:26 +0100 Subject: [PATCH] Made cpp proximal decoder pickling compile --- sw/cpp/src/proximal.h | 2 +- sw/cpp/src/python_interface.cpp | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/sw/cpp/src/proximal.h b/sw/cpp/src/proximal.h index 7676905..b582285 100644 --- a/sw/cpp/src/proximal.h +++ b/sw/cpp/src/proximal.h @@ -106,7 +106,7 @@ public: * @return \b std::tuple */ auto get_decoder_state() const { - return std::tuple(mK, mOmega, mGamma, mEta, mH); + return std::tuple(mH, mK, mOmega, mGamma, mEta); } private: diff --git a/sw/cpp/src/python_interface.cpp b/sw/cpp/src/python_interface.cpp index d46040b..c650258 100644 --- a/sw/cpp/src/python_interface.cpp +++ b/sw/cpp/src/python_interface.cpp @@ -17,12 +17,14 @@ using namespace pybind11::literals; .def("decode", &ProximalDecoder::decode, "x"_a.noconvert()) \ .def(py::pickle( \ [](const ProximalDecoder& a) { \ - MatrixiR H; \ - int K; \ - double omega; \ - double gamma; \ - double eta; \ - std::tie(H, K, omega, gamma, eta) = a.get_decoder_state(); \ + auto state = a.get_decoder_state(); \ + \ + MatrixiR H = std::get<0>(state); \ + int K = std::get<1>(state); \ + double omega = std::get<2>(state); \ + double gamma = std::get<3>(state); \ + double eta = std::get<4>(state); \ + \ return py::make_tuple(H, K, omega, gamma, eta); \ }, \ [](py::tuple t) { \