Remove Scalar::{add, sub, mul} methods

This commit is contained in:
Henry de Valence 2017-11-21 10:43:49 -08:00
parent e94c6f0a96
commit 033a90890c

View file

@ -115,47 +115,47 @@ impl IndexMut<usize> for Scalar {
impl<'b> MulAssign<&'b Scalar> for Scalar { impl<'b> MulAssign<&'b Scalar> for Scalar {
fn mul_assign(&mut self, _rhs: &'b Scalar) { fn mul_assign(&mut self, _rhs: &'b Scalar) {
*self = Scalar::mul(self, _rhs) *self = UnpackedScalar::mul(&self.unpack(), &_rhs.unpack()).pack();
} }
} }
impl<'a, 'b> Mul<&'b Scalar> for &'a Scalar { impl<'a, 'b> Mul<&'b Scalar> for &'a Scalar {
type Output = Scalar; type Output = Scalar;
fn mul(self, _rhs: &'b Scalar) -> Scalar { fn mul(self, _rhs: &'b Scalar) -> Scalar {
Scalar::mul(self, _rhs) UnpackedScalar::mul(&self.unpack(), &_rhs.unpack()).pack()
} }
} }
impl<'b> AddAssign<&'b Scalar> for Scalar { impl<'b> AddAssign<&'b Scalar> for Scalar {
fn add_assign(&mut self, _rhs: &'b Scalar) { fn add_assign(&mut self, _rhs: &'b Scalar) {
*self = Scalar::add(self, _rhs); *self = UnpackedScalar::add(&self.unpack(), &_rhs.unpack()).pack();
} }
} }
impl<'a, 'b> Add<&'b Scalar> for &'a Scalar { impl<'a, 'b> Add<&'b Scalar> for &'a Scalar {
type Output = Scalar; type Output = Scalar;
fn add(self, _rhs: &'b Scalar) -> Scalar { fn add(self, _rhs: &'b Scalar) -> Scalar {
Scalar::add(self, _rhs) UnpackedScalar::add(&self.unpack(), &_rhs.unpack()).pack()
} }
} }
impl<'b> SubAssign<&'b Scalar> for Scalar { impl<'b> SubAssign<&'b Scalar> for Scalar {
fn sub_assign(&mut self, _rhs: &'b Scalar) { fn sub_assign(&mut self, _rhs: &'b Scalar) {
*self = Scalar::sub(self, _rhs); *self = UnpackedScalar::sub(&self.unpack(), &_rhs.unpack()).pack();
} }
} }
impl<'a, 'b> Sub<&'b Scalar> for &'a Scalar { impl<'a, 'b> Sub<&'b Scalar> for &'a Scalar {
type Output = Scalar; type Output = Scalar;
fn sub(self, _rhs: &'b Scalar) -> Scalar { fn sub(self, _rhs: &'b Scalar) -> Scalar {
Scalar::sub(self, _rhs) UnpackedScalar::sub(&self.unpack(), &_rhs.unpack()).pack()
} }
} }
impl<'a> Neg for &'a Scalar { impl<'a> Neg for &'a Scalar {
type Output = Scalar; type Output = Scalar;
fn neg(self) -> Scalar { fn neg(self) -> Scalar {
Scalar::sub(&Scalar::zero(), self) &Scalar::zero() - self
} }
} }
@ -433,21 +433,6 @@ impl Scalar {
UnpackedScalar::from_bytes(&self.0) UnpackedScalar::from_bytes(&self.0)
} }
/// Compute `a + b` (mod l)
pub fn add(a: &Scalar, b: &Scalar) -> Scalar {
UnpackedScalar::add(&a.unpack(), &b.unpack()).pack()
}
/// Compute `a - b` (mod l).
pub fn sub(a: &Scalar, b: &Scalar) -> Scalar {
UnpackedScalar::sub(&a.unpack(), &b.unpack()).pack()
}
/// Compute `a * b` (mod l).
pub fn mul(a: &Scalar, b: &Scalar) -> Scalar {
UnpackedScalar::mul(&a.unpack(), &b.unpack()).pack()
}
/// Compute `(a * b) + c` (mod l). /// Compute `(a * b) + c` (mod l).
pub fn multiply_add(a: &Scalar, b: &Scalar, c: &Scalar) -> Scalar { pub fn multiply_add(a: &Scalar, b: &Scalar, c: &Scalar) -> Scalar {
UnpackedScalar::add(&UnpackedScalar::mul(&a.unpack(), &b.unpack()), &c.unpack()).pack() UnpackedScalar::add(&UnpackedScalar::mul(&a.unpack(), &b.unpack()), &c.unpack()).pack()