diff --git a/src/field/field.rs b/src/field/field.rs index 0249610f..4025c968 100644 --- a/src/field/field.rs +++ b/src/field/field.rs @@ -267,7 +267,7 @@ pub trait Field: } fn rand() -> Self { - Self::rand_from_rng(&mut OsRng) + Self::rand_from_rng(&mut rand::thread_rng()) } fn rand_vec(n: usize) -> Vec { diff --git a/src/polynomial/division.rs b/src/polynomial/division.rs index a893c509..8e3c2676 100644 --- a/src/polynomial/division.rs +++ b/src/polynomial/division.rs @@ -128,7 +128,13 @@ impl PolynomialCoeffs { /// Computes the inverse of `self` modulo `x^n`. pub(crate) fn inv_mod_xn(&self, n: usize) -> Self { assert!(self.coeffs[0].is_nonzero(), "Inverse doesn't exist."); - let mut h = self.padded(n); + + let h = if self.len() < n { + self.padded(n) + } else { + self.clone() + }; + let mut a = Self::empty(); a.coeffs.push(h.coeffs[0].inverse()); for i in 0..log2_ceil(n) {