pub struct NaiveDft;
Trait Implementations§
Source§impl<F: TwoAdicField> TwoAdicSubgroupDft<F> for NaiveDft
impl<F: TwoAdicField> TwoAdicSubgroupDft<F> for NaiveDft
type Evaluations = DenseMatrix<F>
Source§fn dft_batch(&self, mat: RowMajorMatrix<F>) -> RowMajorMatrix<F>
fn dft_batch(&self, mat: RowMajorMatrix<F>) -> RowMajorMatrix<F>
Compute the discrete Fourier transform (DFT) of each column in
mat
.
This is the only method an implementer needs to define, all other
methods can be derived from this one.Source§fn coset_dft(&self, vec: Vec<F>, shift: F) -> Vec<F>
fn coset_dft(&self, vec: Vec<F>, shift: F) -> Vec<F>
Compute the “coset DFT” of
vec
. This can be viewed as interpolation onto a coset of a
multiplicative subgroup, rather than the subgroup itself.Source§fn coset_dft_batch(&self, mat: RowMajorMatrix<F>, shift: F) -> Self::Evaluations
fn coset_dft_batch(&self, mat: RowMajorMatrix<F>, shift: F) -> Self::Evaluations
Compute the “coset DFT” of each column in
mat
. This can be viewed as interpolation onto a
coset of a multiplicative subgroup, rather than the subgroup itself.Source§fn idft_batch(&self, mat: RowMajorMatrix<F>) -> RowMajorMatrix<F>
fn idft_batch(&self, mat: RowMajorMatrix<F>) -> RowMajorMatrix<F>
Compute the inverse DFT of each column in
mat
.Source§fn coset_idft(&self, vec: Vec<F>, shift: F) -> Vec<F>
fn coset_idft(&self, vec: Vec<F>, shift: F) -> Vec<F>
Compute the “coset iDFT” of
vec
. This can be viewed as an inverse operation of
“coset DFT”, that interpolates over a coset of a multiplicative subgroup, rather than
subgroup itself.Source§fn coset_idft_batch(
&self,
mat: RowMajorMatrix<F>,
shift: F,
) -> RowMajorMatrix<F>
fn coset_idft_batch( &self, mat: RowMajorMatrix<F>, shift: F, ) -> RowMajorMatrix<F>
Compute the “coset iDFT” of each column in
mat
. This can be viewed as an inverse operation
of “coset DFT”, that interpolates over a coset of a multiplicative subgroup, rather than the
subgroup itself.Source§fn lde(&self, vec: Vec<F>, added_bits: usize) -> Vec<F>
fn lde(&self, vec: Vec<F>, added_bits: usize) -> Vec<F>
Compute the low-degree extension of
vec
onto a larger subgroup.Source§fn lde_batch(
&self,
mat: RowMajorMatrix<F>,
added_bits: usize,
) -> Self::Evaluations
fn lde_batch( &self, mat: RowMajorMatrix<F>, added_bits: usize, ) -> Self::Evaluations
Compute the low-degree extension of each column in
mat
onto a larger subgroup.Source§fn coset_lde(&self, vec: Vec<F>, added_bits: usize, shift: F) -> Vec<F>
fn coset_lde(&self, vec: Vec<F>, added_bits: usize, shift: F) -> Vec<F>
Compute the low-degree extension of each column in
mat
onto a coset of a larger subgroup.Source§fn coset_lde_batch(
&self,
mat: RowMajorMatrix<F>,
added_bits: usize,
shift: F,
) -> Self::Evaluations
fn coset_lde_batch( &self, mat: RowMajorMatrix<F>, added_bits: usize, shift: F, ) -> Self::Evaluations
Compute the low-degree extension of each column in
mat
onto a coset of a larger subgroup.Auto Trait Implementations§
impl Freeze for NaiveDft
impl RefUnwindSafe for NaiveDft
impl Send for NaiveDft
impl Sync for NaiveDft
impl Unpin for NaiveDft
impl UnwindSafe for NaiveDft
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more