pub struct MixedRadix4xnAvx<A: AvxNum, T> {
twiddles_butterfly4: Rotation90<A::VectorType>,
common_data: CommonSimdData<T, A::VectorType>,
_phantom: PhantomData<T>,
}Fields§
§twiddles_butterfly4: Rotation90<A::VectorType>§common_data: CommonSimdData<T, A::VectorType>§_phantom: PhantomData<T>Implementations§
Source§impl<A: AvxNum, T: FftNum> MixedRadix4xnAvx<A, T>
impl<A: AvxNum, T: FftNum> MixedRadix4xnAvx<A, T>
unsafe fn new_with_avx(inner_fft: Arc<dyn Fft<T>>) -> Self
unsafe fn perform_column_butterflies_immut( &self, input: impl AvxArray<A>, buffer: impl AvxArrayMut<A>, )
unsafe fn perform_column_butterflies(&self, buffer: impl AvxArrayMut<A>)
unsafe fn transpose(&self, input: &[Complex<A>], output: &mut [Complex<A>])
Sourcepub fn new(inner_fft: Arc<dyn Fft<T>>) -> Result<Self, ()>
pub fn new(inner_fft: Arc<dyn Fft<T>>) -> Result<Self, ()>
Preallocates necessary arrays and precomputes necessary data to efficiently compute the FFT Returns Ok() if this machine has the required instruction sets, Err() if some instruction sets are missing
unsafe fn perform_fft_inplace( &self, buffer: &mut [Complex<T>], scratch: &mut [Complex<T>], )
unsafe fn perform_fft_immut( &self, input: &[Complex<T>], output: &mut [Complex<T>], scratch: &mut [Complex<T>], )
unsafe fn perform_fft_out_of_place( &self, input: &mut [Complex<T>], output: &mut [Complex<T>], scratch: &mut [Complex<T>], )
Trait Implementations§
Source§impl<A: AvxNum, T> Direction for MixedRadix4xnAvx<A, T>
impl<A: AvxNum, T> Direction for MixedRadix4xnAvx<A, T>
Source§fn fft_direction(&self) -> FftDirection
fn fft_direction(&self) -> FftDirection
Returns FftDirection::Forward if this instance computes forward FFTs, or FftDirection::Inverse for inverse FFTs
Source§impl<A: AvxNum, T: FftNum> Fft<T> for MixedRadix4xnAvx<A, T>
impl<A: AvxNum, T: FftNum> Fft<T> for MixedRadix4xnAvx<A, T>
Source§fn process_immutable_with_scratch(
&self,
input: &[Complex<T>],
output: &mut [Complex<T>],
scratch: &mut [Complex<T>],
)
fn process_immutable_with_scratch( &self, input: &[Complex<T>], output: &mut [Complex<T>], scratch: &mut [Complex<T>], )
Divides
input and output into chunks of self.len(), and computes a FFT on each chunk while
keeping input untouched. Read moreSource§fn process_outofplace_with_scratch(
&self,
input: &mut [Complex<T>],
output: &mut [Complex<T>],
scratch: &mut [Complex<T>],
)
fn process_outofplace_with_scratch( &self, input: &mut [Complex<T>], output: &mut [Complex<T>], scratch: &mut [Complex<T>], )
Divides
input and output into chunks of size self.len(), and computes a FFT on each chunk. Read moreSource§fn process_with_scratch(
&self,
buffer: &mut [Complex<T>],
scratch: &mut [Complex<T>],
)
fn process_with_scratch( &self, buffer: &mut [Complex<T>], scratch: &mut [Complex<T>], )
Source§fn get_inplace_scratch_len(&self) -> usize
fn get_inplace_scratch_len(&self) -> usize
Returns the size of the scratch buffer required by
process_with_scratch Read moreSource§fn get_outofplace_scratch_len(&self) -> usize
fn get_outofplace_scratch_len(&self) -> usize
Returns the size of the scratch buffer required by
process_outofplace_with_scratch Read moreSource§fn get_immutable_scratch_len(&self) -> usize
fn get_immutable_scratch_len(&self) -> usize
Returns the size of the scratch buffer required by
process_immutable_with_scratch Read moreAuto Trait Implementations§
impl<A, T> !RefUnwindSafe for MixedRadix4xnAvx<A, T>
impl<A, T> !UnwindSafe for MixedRadix4xnAvx<A, T>
impl<A, T> Freeze for MixedRadix4xnAvx<A, T>
impl<A, T> Send for MixedRadix4xnAvx<A, T>where
T: Send,
impl<A, T> Sync for MixedRadix4xnAvx<A, T>where
T: Sync,
impl<A, T> Unpin for MixedRadix4xnAvx<A, T>
impl<A, T> UnsafeUnpin for MixedRadix4xnAvx<A, T>
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