mirror of
https://github.com/Qortal/pirate-librustzcash.git
synced 2025-07-31 12:31:22 +00:00
Move from Field::negate to Neg operator
This commit is contained in:
@@ -5,7 +5,7 @@ use ff::{
|
||||
PrimeField, PrimeFieldDecodingError, PrimeFieldRepr, SqrtField,
|
||||
};
|
||||
use rand_core::RngCore;
|
||||
use std::ops::{Add, AddAssign, Mul, MulAssign, Sub, SubAssign};
|
||||
use std::ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign};
|
||||
|
||||
use super::ToUniform;
|
||||
|
||||
@@ -269,6 +269,20 @@ impl From<Fs> for FsRepr {
|
||||
}
|
||||
}
|
||||
|
||||
impl Neg for Fs {
|
||||
type Output = Self;
|
||||
|
||||
#[inline]
|
||||
fn neg(mut self) -> Self {
|
||||
if !self.is_zero() {
|
||||
let mut tmp = MODULUS;
|
||||
tmp.sub_noborrow(&self.0);
|
||||
self.0 = tmp;
|
||||
}
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'r> Add<&'r Fs> for Fs {
|
||||
type Output = Self;
|
||||
|
||||
@@ -496,15 +510,6 @@ impl Field for Fs {
|
||||
self.reduce();
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn negate(&mut self) {
|
||||
if !self.is_zero() {
|
||||
let mut tmp = MODULUS;
|
||||
tmp.sub_noborrow(&self.0);
|
||||
self.0 = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
fn inverse(&self) -> Option<Self> {
|
||||
if self.is_zero() {
|
||||
None
|
||||
@@ -742,8 +747,7 @@ impl SqrtField for Fs {
|
||||
|
||||
#[test]
|
||||
fn test_neg_one() {
|
||||
let mut o = Fs::one();
|
||||
o.negate();
|
||||
let o = Fs::one().neg();
|
||||
|
||||
assert_eq!(NEGATIVE_ONE, o);
|
||||
}
|
||||
@@ -1471,10 +1475,9 @@ fn test_fs_double() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_fs_negate() {
|
||||
fn test_fs_neg() {
|
||||
{
|
||||
let mut a = Fs::zero();
|
||||
a.negate();
|
||||
let a = Fs::zero().neg();
|
||||
|
||||
assert!(a.is_zero());
|
||||
}
|
||||
@@ -1487,8 +1490,7 @@ fn test_fs_negate() {
|
||||
for _ in 0..1000 {
|
||||
// Ensure (a - (-a)) = 0.
|
||||
let mut a = Fs::random(&mut rng);
|
||||
let mut b = a;
|
||||
b.negate();
|
||||
let b = a.neg();
|
||||
a.add_assign(&b);
|
||||
|
||||
assert!(a.is_zero());
|
||||
@@ -1534,8 +1536,7 @@ fn test_fs_sqrt() {
|
||||
for _ in 0..1000 {
|
||||
// Ensure sqrt(a^2) = a or -a
|
||||
let a = Fs::random(&mut rng);
|
||||
let mut nega = a;
|
||||
nega.negate();
|
||||
let nega = a.neg();
|
||||
let mut b = a;
|
||||
b.square();
|
||||
|
||||
|
Reference in New Issue
Block a user