fn verify_remainder>()

in fri/src/verifier/mod.rs [326:347]


fn verify_remainder<B: StarkField, E: FieldElement<BaseField = B>>(
    mut remainder: Vec<E>,
    max_degree: usize,
) -> Result<(), VerifierError> {
    if max_degree >= remainder.len() - 1 {
        return Err(VerifierError::RemainderDegreeNotValid);
    }

    // interpolate remainder polynomial from its evaluations; we don't shift the domain here
    // because the degree of the polynomial will not change as long as we interpolate over a
    // coset of the original domain.
    let inv_twiddles = fft::get_inv_twiddles(remainder.len());
    fft::interpolate_poly(&mut remainder, &inv_twiddles);
    let poly = remainder;

    // make sure the degree is valid
    if max_degree < polynom::degree_of(&poly) {
        Err(VerifierError::RemainderDegreeMismatch(max_degree))
    } else {
        Ok(())
    }
}