#include #include "decoding.h" using namespace std; vector decoding_serialize(const vector> &pk,const vector &s,const vector ¶ms) { bigint n = params.at(0); bigint k = params.at(1); vector result; assert(pk.size() == n-k); for (auto pkj : pk) { assert(pkj.size() == k); result.insert(result.end(),pkj.begin(),pkj.end()); } assert(s.size() == n-k); result.insert(result.end(),s.begin(),s.end()); return result; } pair>,vector> decoding_deserialize(const vector &bits,const vector ¶ms) { bigint n = params.at(0); bigint k = params.at(1); bigint pos = 0; vector> pk; for (bigint j = 0;j < n-k;++j) { vector pkj; for (bigint i = 0;i < k;++i) pkj.push_back(bits.at(pos++)); pk.push_back(pkj); } vector s; for (bigint j = 0;j < n-k;++j) s.push_back(bits.at(pos++)); assert(pos == bits.size()); return make_pair(pk,s); }