Poly naiveShiftRight(const Poly& p, int i) { Poly res(p.size() - i); for (unsigned j = i; j < p.size(); j++) { res.setBit(j - i, p.bit(j)); } res.computeDegree(); return res; }
Poly naiveShiftLeft(const Poly& p, int i) { Poly res(p.size() + i); for (unsigned j = 0; j < p.size(); j++) { res.setBit(i + j, p.bit(j)); } res.computeDegree(); return res; }