pub struct BaseField(/* private fields */);Implementations§
Trait Implementations§
Source§impl<'r> AddAssign<&'r BaseField> for BaseField
impl<'r> AddAssign<&'r BaseField> for BaseField
Source§fn add_assign(&mut self, other: &BaseField)
fn add_assign(&mut self, other: &BaseField)
Performs the
+= operation. Read moreSource§impl AddAssign for BaseField
impl AddAssign for BaseField
Source§fn add_assign(&mut self, other: BaseField)
fn add_assign(&mut self, other: BaseField)
Performs the
+= operation. Read moreSource§impl ConditionallySelectable for BaseField
impl ConditionallySelectable for BaseField
Source§fn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
Source§fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
Conditionally swap
self and other if choice == 1; otherwise,
reassign both unto themselves. Read moreSource§impl ConstantTimeEq for BaseField
impl ConstantTimeEq for BaseField
Source§impl<'de> Deserialize<'de> for BaseField
impl<'de> Deserialize<'de> for BaseField
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Field for BaseField
impl Field for BaseField
Source§fn random(rng: impl RngCore) -> Self
fn random(rng: impl RngCore) -> Self
Computes a uniformly random element using rejection sampling.
Source§fn is_zero_vartime(&self) -> bool
fn is_zero_vartime(&self) -> bool
Returns true iff this element is zero. Read more
Source§fn invert(&self) -> CtOption<Self>
fn invert(&self) -> CtOption<Self>
Computes the multiplicative inverse of this element,
failing if the element is zero.
Source§fn sqrt_ratio(num: &Self, div: &Self) -> (Choice, Self)
fn sqrt_ratio(num: &Self, div: &Self) -> (Choice, Self)
Computes: Read more
Source§fn sqrt(&self) -> CtOption<Self>
fn sqrt(&self) -> CtOption<Self>
Returns the square root of the field element, if it is
quadratic residue. Read more
Source§impl FromF25519<BaseField> for BaseField
impl FromF25519<BaseField> for BaseField
Source§impl FromF25519<BaseField> for ScalarField
impl FromF25519<BaseField> for ScalarField
Source§fn from_F25519(value: BaseField) -> Vec<ScalarField>
fn from_F25519(value: BaseField) -> Vec<ScalarField>
Injectively map a BaseField element into a Vec of ScalarField elements.
Source§impl FromLeBytes for BaseField
impl FromLeBytes for BaseField
fn from_le_bytes(bytes: [u8; 32]) -> Self
Source§impl<'r> MulAssign<&'r BaseField> for BaseField
impl<'r> MulAssign<&'r BaseField> for BaseField
Source§fn mul_assign(&mut self, other: &BaseField)
fn mul_assign(&mut self, other: &BaseField)
Performs the
*= operation. Read moreSource§impl MulAssign for BaseField
impl MulAssign for BaseField
Source§fn mul_assign(&mut self, other: BaseField)
fn mul_assign(&mut self, other: BaseField)
Performs the
*= operation. Read moreSource§impl MxeRescueKey for BaseField
impl MxeRescueKey for BaseField
fn mxe_rescue_key(i: usize) -> Self
Source§impl Ord for BaseField
Elements are ordered lexicographically.
impl Ord for BaseField
Elements are ordered lexicographically.
Source§impl PartialOrd for BaseField
impl PartialOrd for BaseField
Source§impl PrimeField for BaseField
impl PrimeField for BaseField
Source§const MODULUS: &'static str = MODULUS_STR
const MODULUS: &'static str = MODULUS_STR
Modulus of the field written as a string for debugging purposes. Read more
Source§const NUM_BITS: u32 = MODULUS_BITS
const NUM_BITS: u32 = MODULUS_BITS
How many bits are needed to represent an element of this field.
Source§const CAPACITY: u32
const CAPACITY: u32
How many bits of information can be reliably stored in the field element. Read more
Source§const MULTIPLICATIVE_GENERATOR: Self = GENERATOR
const MULTIPLICATIVE_GENERATOR: Self = GENERATOR
A fixed multiplicative generator of
modulus - 1 order. This element must also be
a quadratic nonresidue. Read moreSource§const ROOT_OF_UNITY: Self = ROOT_OF_UNITY
const ROOT_OF_UNITY: Self = ROOT_OF_UNITY
The
2^s root of unity. Read moreSource§const ROOT_OF_UNITY_INV: Self = ROOT_OF_UNITY_INV
const ROOT_OF_UNITY_INV: Self = ROOT_OF_UNITY_INV
Inverse of
Self::ROOT_OF_UNITY.Source§type Repr = BaseFieldRepr
type Repr = BaseFieldRepr
The prime field can be converted back and forth into this binary
representation.
Source§fn from_repr(r: BaseFieldRepr) -> CtOption<BaseField>
fn from_repr(r: BaseFieldRepr) -> CtOption<BaseField>
Attempts to convert a byte representation of a field element into an element of
this prime field, failing if the input is not canonical (is not smaller than the
field’s modulus). Read more
Source§fn from_repr_vartime(r: BaseFieldRepr) -> Option<BaseField>
fn from_repr_vartime(r: BaseFieldRepr) -> Option<BaseField>
Attempts to convert a byte representation of a field element into an element of
this prime field, failing if the input is not canonical (is not smaller than the
field’s modulus). Read more
Source§fn to_repr(&self) -> BaseFieldRepr
fn to_repr(&self) -> BaseFieldRepr
Converts an element of the prime field into the standard byte representation for
this field. Read more
Source§impl<'r> SubAssign<&'r BaseField> for BaseField
impl<'r> SubAssign<&'r BaseField> for BaseField
Source§fn sub_assign(&mut self, other: &BaseField)
fn sub_assign(&mut self, other: &BaseField)
Performs the
-= operation. Read moreSource§impl SubAssign for BaseField
impl SubAssign for BaseField
Source§fn sub_assign(&mut self, other: BaseField)
fn sub_assign(&mut self, other: BaseField)
Performs the
-= operation. Read moreSource§impl UsedField for BaseField
impl UsedField for BaseField
Source§fn get_alpha_inverse() -> Number
fn get_alpha_inverse() -> Number
The smallest positive integer n such that alpha*n = 1 mod (p-1).
Source§fn mds_matrix_and_inverse(width: usize) -> (Matrix<Self>, Matrix<Self>)
fn mds_matrix_and_inverse(width: usize) -> (Matrix<Self>, Matrix<Self>)
An MDS matrix and its inverse.
Source§fn power_of_two(exponent: usize) -> Self
fn power_of_two(exponent: usize) -> Self
Returns two^exponent.
Source§fn negative_power_of_two(exponent: usize) -> Self
fn negative_power_of_two(exponent: usize) -> Self
Returns -two^exponent.
fn to_unsigned_number(self) -> Number
fn to_signed_number(self) -> Number
Source§fn is_ge_zero(self) -> bool
fn is_ge_zero(self) -> bool
Whether a number is greater or equal to zero according to the signed order.
Source§fn is_le_zero(self) -> bool
fn is_le_zero(self) -> bool
Whether a number is less than or equal to zero according to the signed order.
Source§fn is_gt_zero(self) -> bool
fn is_gt_zero(self) -> bool
Whether a number is greater than zero according to the signed order.
Source§fn is_lt_zero(self) -> bool
fn is_lt_zero(self) -> bool
Whether a number is less than zero according to the signed order.
Source§fn max_cyclic(self, other: Self) -> Self
fn max_cyclic(self, other: Self) -> Self
Max according to the cyclic order on the smaller interval between the two field elements.
Source§fn min_cyclic(self, other: Self) -> Self
fn min_cyclic(self, other: Self) -> Self
Min according to the cyclic order on the smaller interval between the two field elements.
Source§fn sort_pair(self, other: Self) -> (Self, Self)
fn sort_pair(self, other: Self) -> (Self, Self)
Sort according to the cyclic order on the smaller interval between the two field elements.
fn does_mul_overflow(self, other: Self) -> bool
fn does_add_signed_overflow(self, other: Self) -> bool
fn does_add_unsigned_overflow(self, other: Self) -> bool
Source§fn unsigned_bits(self) -> usize
fn unsigned_bits(self) -> usize
The number of bits of self in unsigned notation.
Source§fn signed_bits(self) -> usize
fn signed_bits(self) -> usize
The number of bits of self in signed notation.
Source§fn unsigned_bit(&self, idx: usize) -> bool
fn unsigned_bit(&self, idx: usize) -> bool
The idx bit of self in unsigned notation.
Source§fn signed_bit(&self, idx: usize) -> bool
fn signed_bit(&self, idx: usize) -> bool
The idx bit of self in signed notation.
Source§fn unsigned_euclidean_division(self, other: Self) -> Self
fn unsigned_euclidean_division(self, other: Self) -> Self
The unsigned Euclidean division. Returns 0 if the divisor is 0.
Source§fn signed_euclidean_division(self, other: Self) -> Self
fn signed_euclidean_division(self, other: Self) -> Self
The signed Euclidean division. Returns 0 if the divisor is 0.
Source§fn gen_inclusive_range<R: Rng + ?Sized>(
rng: &mut R,
min: Self,
max: Self,
) -> Self
fn gen_inclusive_range<R: Rng + ?Sized>( rng: &mut R, min: Self, max: Self, ) -> Self
Generates a field element between min and max, included.
Source§fn from_bin(bin: &str) -> Self
fn from_bin(bin: &str) -> Self
Converts a number in lsb-to-msb binary expansion to the corresponding element in Self.
fn as_power_of_two(self) -> Option<usize>
impl Copy for BaseField
impl Eq for BaseField
impl F25519 for BaseField
Auto Trait Implementations§
impl Freeze for BaseField
impl RefUnwindSafe for BaseField
impl Send for BaseField
impl Sync for BaseField
impl Unpin for BaseField
impl UnsafeUnpin for BaseField
impl UnwindSafe for BaseField
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<T> ConditionallySelectable for Twhere
T: ConditionallySelectable,
impl<T> ConditionallySelectable for Twhere
T: ConditionallySelectable,
Source§impl<T> ConstantTimeSelect for Twhere
T: ConditionallySelectable,
impl<T> ConstantTimeSelect for Twhere
T: ConditionallySelectable,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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<F> FromLeBits<bool> for Fwhere
F: ActuallyUsedField,
impl<F> FromLeBits<bool> for Fwhere
F: ActuallyUsedField,
Source§impl<T> GreaterEqual<T> for Twhere
T: PartialOrd,
impl<T> GreaterEqual<T> for Twhere
T: PartialOrd,
Source§impl<T> GreaterThan<T> for Twhere
T: PartialOrd,
impl<T> GreaterThan<T> for Twhere
T: PartialOrd,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.