s/Q/Quadratic/ in LegendreSymbol enum.

Proposed by @ebfull.
This commit is contained in:
Michele Orrù 2017-08-12 11:50:30 +02:00
parent 6feb0f802f
commit a86d0b7270
4 changed files with 18 additions and 18 deletions

View File

@ -817,8 +817,8 @@ impl SqrtField for Fq {
let s = self.pow([0xdcff7fffffffd555, 0xf55ffff58a9ffff, 0xb39869507b587b12, let s = self.pow([0xdcff7fffffffd555, 0xf55ffff58a9ffff, 0xb39869507b587b12,
0xb23ba5c279c2895f, 0x258dd3db21a5d66b, 0xd0088f51cbff34d]); 0xb23ba5c279c2895f, 0x258dd3db21a5d66b, 0xd0088f51cbff34d]);
if s == Fq::zero() { Zero } if s == Fq::zero() { Zero }
else if s == Fq::one() { QResidue } else if s == Fq::one() { QuadraticResidue }
else { QNonResidue } else { QuadraticNonResidue }
} }
fn sqrt(&self) -> Option<Self> { fn sqrt(&self) -> Option<Self> {
@ -1796,16 +1796,16 @@ fn fq_repr_tests() {
fn test_fq_legendre() { fn test_fq_legendre() {
use ::LegendreSymbol::*; use ::LegendreSymbol::*;
assert_eq!(QResidue, Fq::one().legendre()); assert_eq!(QuadraticResidue, Fq::one().legendre());
assert_eq!(Zero, Fq::zero().legendre()); assert_eq!(Zero, Fq::zero().legendre());
assert_eq!(QNonResidue, Fq::from_repr(FqRepr::from(2)).unwrap().legendre()); assert_eq!(QuadraticNonResidue, Fq::from_repr(FqRepr::from(2)).unwrap().legendre());
assert_eq!(QResidue, Fq::from_repr(FqRepr::from(4)).unwrap().legendre()); assert_eq!(QuadraticResidue, Fq::from_repr(FqRepr::from(4)).unwrap().legendre());
let e = FqRepr([0x52a112f249778642, 0xd0bedb989b7991f, 0xdad3b6681aa63c05, let e = FqRepr([0x52a112f249778642, 0xd0bedb989b7991f, 0xdad3b6681aa63c05,
0xf2efc0bb4721b283, 0x6057a98f18c24733, 0x1022c2fd122889e4]); 0xf2efc0bb4721b283, 0x6057a98f18c24733, 0x1022c2fd122889e4]);
assert_eq!(QNonResidue, Fq::from_repr(e).unwrap().legendre()); assert_eq!(QuadraticNonResidue, Fq::from_repr(e).unwrap().legendre());
let e = FqRepr([0x6dae594e53a96c74, 0x19b16ca9ba64b37b, 0x5c764661a59bfc68, let e = FqRepr([0x6dae594e53a96c74, 0x19b16ca9ba64b37b, 0x5c764661a59bfc68,
0xaa346e9b31c60a, 0x346059f9d87a9fa9, 0x1d61ac6bfd5c88b]); 0xaa346e9b31c60a, 0x346059f9d87a9fa9, 0x1d61ac6bfd5c88b]);
assert_eq!(QResidue, Fq::from_repr(e).unwrap().legendre()); assert_eq!(QuadraticResidue, Fq::from_repr(e).unwrap().legendre());
} }

View File

@ -435,9 +435,9 @@ fn test_fq2_legendre() {
// i^2 = -1 // i^2 = -1
let mut m1 = Fq2::one(); let mut m1 = Fq2::one();
m1.negate(); m1.negate();
assert_eq!(QResidue, m1.legendre()); assert_eq!(QuadraticResidue, m1.legendre());
m1.mul_by_nonresidue(); m1.mul_by_nonresidue();
assert_eq!(QNonResidue, m1.legendre()); assert_eq!(QuadraticNonResidue, m1.legendre());
} }
#[cfg(test)] #[cfg(test)]

View File

@ -556,8 +556,8 @@ impl SqrtField for Fr {
fn legendre(&self) -> ::LegendreSymbol { fn legendre(&self) -> ::LegendreSymbol {
let s = self.pow([0x7fffffff80000000, 0xa9ded2017fff2dff, 0x199cec0404d0ec02, 0x39f6d3a994cebea4]); let s = self.pow([0x7fffffff80000000, 0xa9ded2017fff2dff, 0x199cec0404d0ec02, 0x39f6d3a994cebea4]);
if s == Self::zero() { Zero } if s == Self::zero() { Zero }
else if s == Self::one() { QResidue } else if s == Self::one() { QuadraticResidue }
else { QNonResidue } else { QuadraticNonResidue }
} }
fn sqrt(&self) -> Option<Self> { fn sqrt(&self) -> Option<Self> {
@ -565,8 +565,8 @@ impl SqrtField for Fr {
// https://eprint.iacr.org/2012/685.pdf (page 12, algorithm 5) // https://eprint.iacr.org/2012/685.pdf (page 12, algorithm 5)
match self.legendre() { match self.legendre() {
Zero => Some(*self), Zero => Some(*self),
QNonResidue => None, QuadraticNonResidue => None,
QResidue => { QuadraticResidue => {
let mut c = Fr(ROOT_OF_UNITY); let mut c = Fr(ROOT_OF_UNITY);
// r = self^((t + 1) // 2) // r = self^((t + 1) // 2)
let mut r = self.pow([0x7fff2dff80000000, 0x4d0ec02a9ded201, 0x94cebea4199cec04, 0x39f6d3a9]); let mut r = self.pow([0x7fff2dff80000000, 0x4d0ec02a9ded201, 0x94cebea4199cec04, 0x39f6d3a9]);
@ -785,13 +785,13 @@ fn test_fr_repr_sub_noborrow() {
#[test] #[test]
fn test_fr_legendre() { fn test_fr_legendre() {
assert_eq!(QResidue, Fr::one().legendre()); assert_eq!(QuadraticResidue, Fr::one().legendre());
assert_eq!(Zero, Fr::zero().legendre()); assert_eq!(Zero, Fr::zero().legendre());
let e = FrRepr([0x0dbc5349cd5664da, 0x8ac5b6296e3ae29d, 0x127cb819feceaa3b, 0x3a6b21fb03867191]); let e = FrRepr([0x0dbc5349cd5664da, 0x8ac5b6296e3ae29d, 0x127cb819feceaa3b, 0x3a6b21fb03867191]);
assert_eq!(QResidue, Fr::from_repr(e).unwrap().legendre()); assert_eq!(QuadraticResidue, Fr::from_repr(e).unwrap().legendre());
let e = FrRepr([0x96341aefd047c045, 0x9b5f4254500a4d65, 0x1ee08223b68ac240, 0x31d9cd545c0ec7c6]); let e = FrRepr([0x96341aefd047c045, 0x9b5f4254500a4d65, 0x1ee08223b68ac240, 0x31d9cd545c0ec7c6]);
assert_eq!(QNonResidue, Fr::from_repr(e).unwrap().legendre()); assert_eq!(QuadraticNonResidue, Fr::from_repr(e).unwrap().legendre());
} }
#[test] #[test]

View File

@ -416,8 +416,8 @@ pub trait PrimeFieldRepr: Sized +
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum LegendreSymbol { pub enum LegendreSymbol {
Zero = 0, Zero = 0,
QResidue = 1, QuadraticResidue = 1,
QNonResidue = -1 QuadraticNonResidue = -1
} }
/// An error that may occur when trying to interpret a `PrimeFieldRepr` as a /// An error that may occur when trying to interpret a `PrimeFieldRepr` as a