From 39fa834e6f88ca68015eb5f91915ba681a7ce7ed Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Fri, 18 Nov 2016 13:01:34 +0100 Subject: Made permutation a responsibility of cmix in the realtime phase. --- node/node_node.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'node/node_node.cpp') diff --git a/node/node_node.cpp b/node/node_node.cpp index 1742035..8faa4cf 100644 --- a/node/node_node.cpp +++ b/node/node_node.cpp @@ -160,25 +160,23 @@ cmix_proto::RealMix fill_realtime_mix_message(CMixContext& ctx, T const& ms) { cmix_proto::RealMix realmix; size_t len = get_group_element_array_size(&ctx); - - for(int i = 0; i < ms.size(); ++i) { - realmix.add_m(); - } - + std::vector mv(ms.size(), nullptr); + std::vector msv(ms.size(), nullptr); for(int i = 0; i < ms.size(); ++i) { - auto new_pos = ctx.permutation[i]; - - realmix.mutable_m(new_pos)->resize(len); - - multiply_s( - &ctx, - &(*realmix.mutable_m(new_pos))[0], - ms.Get(i).data(), - i - ); + std::string* m = realmix.add_m(); + m->resize(len); + mv[i] = &(*m)[0]; + msv[i] = ms.Get(i).data(); } + permute_and_multiply_s( + &ctx, + mv.data(), + msv.data(), + ms.size() + ); + return realmix; } -- cgit v1.2.3-70-g09d2