From 5a3f32ff25e7672ebc453818e7aa01ae84598ce7 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Fri, 18 Nov 2016 14:34:20 +0100 Subject: The Precomputation postprocess step is now done on batch level. --- node/node_node.cpp | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) (limited to 'node/node_node.cpp') diff --git a/node/node_node.cpp b/node/node_node.cpp index f6e5071..63a44df 100644 --- a/node/node_node.cpp +++ b/node/node_node.cpp @@ -90,35 +90,34 @@ template cmix_proto::PrePost fill_precomputation_post_message(CMixContext& ctx, T const& rs, T const& ms) { cmix_proto::PrePost prepost; + size_t len = get_group_element_array_size(&ctx); + + std::vector r_epirs(ms.size(), nullptr); + std::vector m_epirs(ms.size(), nullptr); + std::vector rsv(ms.size(), nullptr); + std::vector msv(ms.size(), nullptr); for(size_t i = 0; i < ms.size(); ++i) { - prepost.add_r_epirs(); - prepost.add_m_epirs(); - - size_t el_len = get_group_element_array_size(&ctx); - - prepost.mutable_r_epirs(i)->resize(el_len); - prepost.mutable_m_epirs(i)->resize(el_len); + std::string* r = prepost.add_r_epirs(); + r->resize(len); + r_epirs[i] = &(*r)[0]; - post_process( - &ctx, - &(*prepost.mutable_r_epirs(i))[0], - &(*prepost.mutable_m_epirs(i))[0], - rs.Get(i).data(), - ms.Get(i).data(), - i - ); + std::string* m = prepost.add_m_epirs(); + m->resize(len); + m_epirs[i] = &(*m)[0]; - { - std::stringstream ss; - ss << "pirs: "; - std::string pirs = to_string(ctx.pirs[i], ctx); - for(auto&& c : pirs) { - ss << "\\" << std::setw(3) << std::setfill('0') << std::oct << (unsigned int) c; - } - BOOST_LOG_TRIVIAL(trace) << ss.str(); - } + rsv[i] = rs.Get(i).data(); + msv[i] = ms.Get(i).data(); } + post_process( + &ctx, + r_epirs.data(), + m_epirs.data(), + rsv.data(), + msv.data(), + ms.size() + ); + return prepost; } -- cgit v1.2.3-70-g09d2