pub trait Field:
Sized
+ Eq
+ Copy
+ Clone
+ Send
+ Sync
+ Debug
+ Display
+ 'static {
Show 13 methods
// Required methods
fn random<R: RngCore + ?Sized>(rng: &mut R) -> Self;
fn zero() -> Self;
fn one() -> Self;
fn is_zero(&self) -> bool;
fn square(&mut self);
fn double(&mut self);
fn negate(&mut self);
fn add_assign(&mut self, other: &Self);
fn sub_assign(&mut self, other: &Self);
fn mul_assign(&mut self, other: &Self);
fn inverse(&self) -> Option<Self>;
fn frobenius_map(&mut self, power: usize);
// Provided method
fn pow<S: AsRef<[u64]>>(&self, exp: S) -> Self { ... }
}
Expand description
This trait represents an element of a field.
Required Methods§
Sourcefn random<R: RngCore + ?Sized>(rng: &mut R) -> Self
fn random<R: RngCore + ?Sized>(rng: &mut R) -> Self
Returns an element chosen uniformly at random using a user-provided RNG.
Sourcefn add_assign(&mut self, other: &Self)
fn add_assign(&mut self, other: &Self)
Adds another element to this element.
Sourcefn sub_assign(&mut self, other: &Self)
fn sub_assign(&mut self, other: &Self)
Subtracts another element from this element.
Sourcefn mul_assign(&mut self, other: &Self)
fn mul_assign(&mut self, other: &Self)
Multiplies another element by this element.
Sourcefn inverse(&self) -> Option<Self>
fn inverse(&self) -> Option<Self>
Computes the multiplicative inverse of this element, if nonzero.
Sourcefn frobenius_map(&mut self, power: usize)
fn frobenius_map(&mut self, power: usize)
Exponentiates this element by a power of the base prime modulus via the Frobenius automorphism.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.