pub trait ExtensionField<Base: Field>: Field + FieldExtensionAlgebra<Base> {
type ExtensionPacking: FieldExtensionAlgebra<Base::Packing, F = Self> + 'static + Copy + Send + Sync;
// Provided methods
fn is_in_basefield(&self) -> bool { ... }
fn as_base(&self) -> Option<Base> { ... }
fn ext_powers_packed(&self) -> Powers<Self::ExtensionPacking> ⓘ { ... }
}
Required Associated Types§
type ExtensionPacking: FieldExtensionAlgebra<Base::Packing, F = Self> + 'static + Copy + Send + Sync
Provided Methods§
fn is_in_basefield(&self) -> bool
fn as_base(&self) -> Option<Base>
Sourcefn ext_powers_packed(&self) -> Powers<Self::ExtensionPacking> ⓘ
fn ext_powers_packed(&self) -> Powers<Self::ExtensionPacking> ⓘ
Construct an iterator which returns powers of self
packed into ExtensionPacking
elements.
E.g. if PACKING::WIDTH = 4
this returns the elements:
[self^0, self^1, self^2, self^3], [self^4, self^5, self^6, self^7], ...
.
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.