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