pub trait Field:
Sized
+ Eq
+ Copy
+ Clone
+ Send
+ Sync
+ Debug
+ Display
+ 'static
+ Rand
+ Hash
+ Default
+ Serialize
+ DeserializeOwned {
// Required methods
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 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.