Merge pull request #43 from mir-protocol/poly_inv_fix

Fix intermittent inv_mod_xn failure
This commit is contained in:
Daniel Lubarov 2021-05-17 12:31:43 -07:00 committed by GitHub
commit cb4c420dcf

View File

@ -128,7 +128,13 @@ impl<F: Field> PolynomialCoeffs<F> {
/// 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) {