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) { \