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