pub trait PackedExtension<FS: Field>: PackedField
where Self::Scalar: ExtensionField<FS>,
{ type PackedSubfield: PackedField<Scalar = FS>; // Required methods fn cast_bases(packed: &[Self]) -> &[Self::PackedSubfield]; fn cast_bases_mut(packed: &mut [Self]) -> &mut [Self::PackedSubfield]; fn cast_exts(packed: &[Self::PackedSubfield]) -> &[Self]; fn cast_exts_mut(packed: &mut [Self::PackedSubfield]) -> &mut [Self]; fn cast_base(&self) -> &Self::PackedSubfield; fn cast_base_mut(&mut self) -> &mut Self::PackedSubfield; fn cast_ext(base: &Self::PackedSubfield) -> &Self; fn cast_ext_mut(base: &mut Self::PackedSubfield) -> &mut Self; }
Expand description

The trait represents the relation between the packed fields of the same bit size where one scalar is the extension of the other one.

Required Associated Types§

Required Methods§

source

fn cast_bases(packed: &[Self]) -> &[Self::PackedSubfield]

source

fn cast_bases_mut(packed: &mut [Self]) -> &mut [Self::PackedSubfield]

source

fn cast_exts(packed: &[Self::PackedSubfield]) -> &[Self]

source

fn cast_exts_mut(packed: &mut [Self::PackedSubfield]) -> &mut [Self]

source

fn cast_base(&self) -> &Self::PackedSubfield

source

fn cast_base_mut(&mut self) -> &mut Self::PackedSubfield

source

fn cast_ext(base: &Self::PackedSubfield) -> &Self

source

fn cast_ext_mut(base: &mut Self::PackedSubfield) -> &mut Self

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<PT, FS> PackedExtension<FS> for PT
where FS: Field, PT: PackedField<Scalar: ExtensionField<FS>> + WithUnderlier<Underlier: PackScalar<FS>>,