diff --git a/poly/src/polynomial/univariate/dense.rs b/poly/src/polynomial/univariate/dense.rs index 1df019d58..3dfd3dfeb 100644 --- a/poly/src/polynomial/univariate/dense.rs +++ b/poly/src/polynomial/univariate/dense.rs @@ -487,6 +487,15 @@ impl<'a, 'b, F: Field> Sub<&'a DensePolynomial> for &'b DensePolynomial { } } +impl Sub> for DensePolynomial { + type Output = DensePolynomial; + + #[inline] + fn sub(self, other: DensePolynomial) -> DensePolynomial { + &self - &other + } +} + impl<'a, 'b, F: Field> Sub<&'a SparsePolynomial> for &'b DensePolynomial { type Output = DensePolynomial; @@ -584,6 +593,15 @@ impl<'a, 'b, F: Field> Div<&'a DensePolynomial> for &'b DensePolynomial { } } +impl Div> for DensePolynomial { + type Output = DensePolynomial; + + #[inline] + fn div(self, divisor: DensePolynomial) -> DensePolynomial { + &self / &divisor + } +} + impl<'b, F: Field> Mul for &'b DensePolynomial { type Output = DensePolynomial; @@ -601,6 +619,15 @@ impl<'b, F: Field> Mul for &'b DensePolynomial { } } +impl Mul for DensePolynomial { + type Output = DensePolynomial; + + #[inline] + fn mul(self, elem: F) -> DensePolynomial { + &self * elem + } +} + /// Performs O(nlogn) multiplication of polynomials if F is smooth. impl<'a, 'b, F: FftField> Mul<&'a DensePolynomial> for &'b DensePolynomial { type Output = DensePolynomial; @@ -620,6 +647,15 @@ impl<'a, 'b, F: FftField> Mul<&'a DensePolynomial> for &'b DensePolynomial } } +impl Mul> for DensePolynomial { + type Output = DensePolynomial; + + #[inline] + fn mul(self, other: DensePolynomial) -> DensePolynomial { + &self * &other + } +} + impl Zero for DensePolynomial { /// Returns the zero polynomial. fn zero() -> Self {