pub struct MixedRadix7xnAvx<A: AvxNum, T> {
twiddles_butterfly7: [A::VectorType; 3],
common_data: CommonSimdData<T, A::VectorType>,
_phantom: PhantomData<T>,
}Fields§
§twiddles_butterfly7: [A::VectorType; 3]§common_data: CommonSimdData<T, A::VectorType>§_phantom: PhantomData<T>Implementations§
Source§impl<A: AvxNum, T: FftNum> MixedRadix7xnAvx<A, T>
impl<A: AvxNum, T: FftNum> MixedRadix7xnAvx<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 MixedRadix7xnAvx<A, T>
impl<A: AvxNum, T> Direction for MixedRadix7xnAvx<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 MixedRadix7xnAvx<A, T>
impl<A: AvxNum, T: FftNum> Fft<T> for MixedRadix7xnAvx<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 MixedRadix7xnAvx<A, T>
impl<A, T> !UnwindSafe for MixedRadix7xnAvx<A, T>
impl<A, T> Freeze for MixedRadix7xnAvx<A, T>
impl<A, T> Send for MixedRadix7xnAvx<A, T>where
T: Send,
impl<A, T> Sync for MixedRadix7xnAvx<A, T>where
T: Sync,
impl<A, T> Unpin for MixedRadix7xnAvx<A, T>
impl<A, T> UnsafeUnpin for MixedRadix7xnAvx<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