Trait snarkvm_fields::Field [−][src]
pub trait Field: ToBytes + FromBytes + Copy + Clone + Debug + Display + Default + Send + Sync + 'static + Eq + One + Ord + Neg<Output = Self> + UniformRand + Sized + Hash + From<u128> + From<u64> + From<u32> + From<u16> + From<u8> + for<'a> Add<&'a Self, Output = Self> + for<'a> Sub<&'a Self, Output = Self> + for<'a> Mul<&'a Self, Output = Self> + for<'a> Div<&'a Self, Output = Self> + for<'a> AddAssign<&'a Self> + for<'a> SubAssign<&'a Self> + for<'a> MulAssign<&'a Self> + for<'a> DivAssign<&'a Self> + CanonicalSerialize + ConstantSerializedSize + CanonicalSerializeWithFlags + CanonicalDeserialize + CanonicalDeserializeWithFlags + Serialize + for<'a> Deserialize<'a> + Zero { fn characteristic<'a>() -> &'a [u64]; #[must_use] fn double(&self) -> Self; fn double_in_place(&mut self) -> &mut Self; #[must_use] fn square(&self) -> Self; fn square_in_place(&mut self) -> &mut Self; #[must_use] fn inverse(&self) -> Option<Self>; fn inverse_in_place(&mut self) -> Option<&mut Self>; fn frobenius_map(&mut self, power: usize); fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>; fn pow<S: AsRef<[u64]>>(&self, exp: S) -> Self { ... } fn from_random_bytes(bytes: &[u8]) -> Option<Self> { ... } }
Expand description
The interface for a generic field.
Required methods
fn characteristic<'a>() -> &'a [u64]
[src]
Expand description
Returns the characteristic of the field.
#[must_use]fn double(&self) -> Self
[src]
Expand description
Returns self + self
.
fn double_in_place(&mut self) -> &mut Self
[src]
Expand description
Doubles self
in place.
#[must_use]fn square(&self) -> Self
[src]
Expand description
Returns self * self
.
fn square_in_place(&mut self) -> &mut Self
[src]
Expand description
Squares self
in place.
#[must_use]fn inverse(&self) -> Option<Self>
[src]
Expand description
Computes the multiplicative inverse of self
if self
is nonzero.
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, power: usize)
[src]
Expand description
Exponentiates this element by a power of the base prime modulus via the Frobenius automorphism.
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
Expand description
Returns a field element with an extra sign bit used for group parsing if the set of bytes forms a valid field element, otherwise returns None. This function is primarily intended for sampling random field elements from a hash-function or RNG output.
Provided methods
fn pow<S: AsRef<[u64]>>(&self, exp: S) -> Self
[src]
Expand description
Exponentiates this element by a number represented with u64
limbs,
least significant limb first.
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
Expand description
Returns a field element if the set of bytes forms a valid field element, otherwise returns None. This function is primarily intended for sampling random field elements from a hash-function or RNG output.
Implementors
impl<P: Fp6Parameters> Field for snarkvm_fields::fp6_2over3::Fp6<P>
[src]
impl<P: Fp6Parameters> Field for snarkvm_fields::fp6_2over3::Fp6<P>
[src]fn characteristic<'a>() -> &'a [u64]
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn square(&self) -> Self
[src]
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, power: usize)
[src]
impl<P: Fp6Parameters> Field for snarkvm_fields::fp6_3over2::Fp6<P>
[src]
impl<P: Fp6Parameters> Field for snarkvm_fields::fp6_3over2::Fp6<P>
[src]fn characteristic<'a>() -> &'a [u64]
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, power: usize)
[src]
impl<P: Fp2Parameters> Field for Fp2<P>
[src]
impl<P: Fp2Parameters> Field for Fp2<P>
[src]fn characteristic<'a>() -> &'a [u64]
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn square(&self) -> Self
[src]
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, power: usize)
[src]
impl<P: Fp3Parameters> Field for Fp3<P>
[src]
impl<P: Fp3Parameters> Field for Fp3<P>
[src]fn characteristic<'a>() -> &'a [u64]
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, power: usize)
[src]
impl<P: Fp12Parameters> Field for Fp12<P>
[src]
impl<P: Fp12Parameters> Field for Fp12<P>
[src]fn characteristic<'a>() -> &'a [u64]
[src]
fn double(&self) -> Self
[src]
fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn from_random_bytes(bytes: &[u8]) -> Option<Self>
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn frobenius_map(&mut self, power: usize)
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
impl<P: Fp256Parameters> Field for Fp256<P>
[src]
impl<P: Fp256Parameters> Field for Fp256<P>
[src]fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn characteristic<'a>() -> &'a [u64]
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, _: usize)
[src]
impl<P: Fp320Parameters> Field for Fp320<P>
[src]
impl<P: Fp320Parameters> Field for Fp320<P>
[src]fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn characteristic<'a>() -> &'a [u64]
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, _: usize)
[src]
impl<P: Fp384Parameters> Field for Fp384<P>
[src]
impl<P: Fp384Parameters> Field for Fp384<P>
[src]fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn characteristic<'a>() -> &'a [u64]
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, _: usize)
[src]
impl<P: Fp768Parameters> Field for Fp768<P>
[src]
impl<P: Fp768Parameters> Field for Fp768<P>
[src]fn from_random_bytes_with_flags(bytes: &[u8]) -> Option<(Self, u8)>
[src]
fn double(&self) -> Self
[src]
fn double_in_place(&mut self) -> &mut Self
[src]
fn characteristic<'a>() -> &'a [u64]
[src]
fn square(&self) -> Self
[src]
fn square_in_place(&mut self) -> &mut Self
[src]
fn inverse(&self) -> Option<Self>
[src]
fn inverse_in_place(&mut self) -> Option<&mut Self>
[src]
fn frobenius_map(&mut self, _: usize)
[src]
impl<P: Fp832Parameters> Field for Fp832<P>
[src]
impl<P: Fp832Parameters> Field for Fp832<P>
[src]