Trait ExtensionField

Source
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§

Source

type ExtensionPacking: FieldExtensionAlgebra<Base::Packing, F = Self> + 'static + Copy + Send + Sync

Provided Methods§

Source

fn is_in_basefield(&self) -> bool

Source

fn as_base(&self) -> Option<Base>

Source

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.

Implementors§