pub struct Curve25519PolynomialRing(pub Polynomial<Curve25519FieldElement>);Tuple Fields§
§0: Polynomial<Curve25519FieldElement>Trait Implementations§
Source§impl Add for Curve25519PolynomialRing
impl Add for Curve25519PolynomialRing
Source§impl AddAssign for Curve25519PolynomialRing
impl AddAssign for Curve25519PolynomialRing
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
Performs the
+= operation. Read moreSource§impl Clone for Curve25519PolynomialRing
impl Clone for Curve25519PolynomialRing
Source§fn clone(&self) -> Curve25519PolynomialRing
fn clone(&self) -> Curve25519PolynomialRing
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Curve25519PolynomialRing
impl Debug for Curve25519PolynomialRing
Source§impl Display for Curve25519PolynomialRing
impl Display for Curve25519PolynomialRing
Source§impl Div for Curve25519PolynomialRing
impl Div for Curve25519PolynomialRing
Source§impl FieldElement for Curve25519PolynomialRing
impl FieldElement for Curve25519PolynomialRing
Source§fn from_usize(value: usize) -> Self
fn from_usize(value: usize) -> Self
Return a constant polynomial with the provided value
Source§fn deserialize(str: &str) -> Self
fn deserialize(str: &str) -> Self
Parse an element from a supposedly
valid string representation.
Source§fn to_biguint(&self) -> BigUint
fn to_biguint(&self) -> BigUint
Get a
num_bigint::BigUint representation for arbitrary
precision operations.Source§fn from_biguint(_v: &BigUint) -> Self
fn from_biguint(_v: &BigUint) -> Self
Convert a
num_bigint::BigUint into a field element
precision operations. Numbers will be converted % self.prime()Source§fn from_bytes_le(bytes: &[u8]) -> Self
fn from_bytes_le(bytes: &[u8]) -> Self
Parse an element from a byte representation. Panics
if the byte representation is too long. e.g. if the bytes
represent a value > Self::prime().
Source§fn to_bytes_le(&self) -> Vec<u8> ⓘ
fn to_bytes_le(&self) -> Vec<u8> ⓘ
Convert a field element to a byte representation.
The number of bytes may be variable, but is guaranteed
to be accepted by
from_bytes_le for the same curve.Source§fn sample_uniform<R>(src: &mut R) -> Selfwhere
R: Rng,
fn sample_uniform<R>(src: &mut R) -> Selfwhere
R: Rng,
Sample a random element from the field using a supplied
source of randomness. Requires the
random feature to be enabled.Source§fn lower60_string(&self) -> String
fn lower60_string(&self) -> String
A string representation of a field element using
only the lower 60 bits of the element. A normal
decimal representation will be given if it’s shorter
than the lower 60 bit representation.
This is a lossy representation.
Source§fn log_floor(&self, b: Self) -> u32
fn log_floor(&self, b: Self) -> u32
Take a logarithm using a custom base and return the
floored value.
O(logb(n)) time complexity where n
is the size of the element.Source§fn legendre(&self) -> i32
fn legendre(&self) -> i32
Calculate the legendre symbol
for a field element. Used to determine if the
element is a quadratic residue.
Source§impl From<Polynomial<Curve25519FieldElement>> for Curve25519PolynomialRing
impl From<Polynomial<Curve25519FieldElement>> for Curve25519PolynomialRing
Source§fn from(p: Polynomial<Curve25519FieldElement>) -> Self
fn from(p: Polynomial<Curve25519FieldElement>) -> Self
Converts to this type from the input type.
Source§impl From<u64> for Curve25519PolynomialRing
impl From<u64> for Curve25519PolynomialRing
Source§impl FromStr for Curve25519PolynomialRing
impl FromStr for Curve25519PolynomialRing
Source§impl Hash for Curve25519PolynomialRing
impl Hash for Curve25519PolynomialRing
Source§impl Mul for Curve25519PolynomialRing
impl Mul for Curve25519PolynomialRing
Source§impl MulAssign for Curve25519PolynomialRing
impl MulAssign for Curve25519PolynomialRing
Source§fn mul_assign(&mut self, other: Self)
fn mul_assign(&mut self, other: Self)
Performs the
*= operation. Read moreSource§impl Neg for Curve25519PolynomialRing
impl Neg for Curve25519PolynomialRing
Source§impl PartialEq for Curve25519PolynomialRing
impl PartialEq for Curve25519PolynomialRing
Source§impl PolynomialRingElement for Curve25519PolynomialRing
impl PolynomialRingElement for Curve25519PolynomialRing
type F = Curve25519FieldElement
Source§fn modulus() -> Polynomial<Self::F>
fn modulus() -> Polynomial<Self::F>
Modulus used in remainder division to form
the polynomial ring. Read more
Source§fn polynomial(&self) -> &Polynomial<Self::F>
fn polynomial(&self) -> &Polynomial<Self::F>
Return the Polynomial representation of the current value
Used to automatically implement norms and other functions.
Source§fn from_polynomial(p: Polynomial<Self::F>) -> Self
fn from_polynomial(p: Polynomial<Self::F>) -> Self
Create a polynomial ring element from a Polynomial
with terms in the ring’s scalar field.
Source§fn to_scalar(&self) -> Result<Self::F, Error>
fn to_scalar(&self) -> Result<Self::F, Error>
Attempt to get a scalar representation of the polynomial.
If the polynomial degree is > 0 this method will error.
Source§fn norm_l1(&self) -> BigUint
fn norm_l1(&self) -> BigUint
Calculate the l1 norm for this polynomial. That is
the summation of all coefficients
Source§fn norm_l2(&self) -> BigUint
fn norm_l2(&self) -> BigUint
Calculate the l2 norm for this polynomial. That is
the square root of the summation of each coefficient squared Read more
Source§fn norm_max(&self) -> BigUint
fn norm_max(&self) -> BigUint
Calculate the l-infinity norm for this polynomial. That is
the largest coefficient
Source§impl Sub for Curve25519PolynomialRing
impl Sub for Curve25519PolynomialRing
Source§impl SubAssign for Curve25519PolynomialRing
impl SubAssign for Curve25519PolynomialRing
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Performs the
-= operation. Read moreimpl Eq for Curve25519PolynomialRing
impl StructuralPartialEq for Curve25519PolynomialRing
Auto Trait Implementations§
impl Freeze for Curve25519PolynomialRing
impl RefUnwindSafe for Curve25519PolynomialRing
impl Send for Curve25519PolynomialRing
impl Sync for Curve25519PolynomialRing
impl Unpin for Curve25519PolynomialRing
impl UnwindSafe for Curve25519PolynomialRing
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.