// Not optimized for speed bool CRC_Code::check_parity(const bvec &coded_bits) const { int n = coded_bits.size(); bvec temp; if (reverse_parity) { temp = concat(coded_bits.left(n - no_parity), reverse(coded_bits.right(no_parity))); } else { temp = coded_bits; } for (int i = 0; i < temp.size() - polynomial.size() + 1; i++) { if (temp(i) == 1) { temp.set_subvector(i, temp(i, i + no_parity) + polynomial); } } if (temp(temp.size() - no_parity, temp.size() - 1) == zeros_b(no_parity)) return true; else return false; }