Skip to main content

MixedRadix16xnAvx

Struct MixedRadix16xnAvx 

Source
pub struct MixedRadix16xnAvx<A: AvxNum, T> {
    twiddles_butterfly4: Rotation90<A::VectorType>,
    twiddles_butterfly16: [A::VectorType; 2],
    common_data: CommonSimdData<T, A::VectorType>,
    _phantom: PhantomData<T>,
}

Fields§

§twiddles_butterfly4: Rotation90<A::VectorType>§twiddles_butterfly16: [A::VectorType; 2]§common_data: CommonSimdData<T, A::VectorType>§_phantom: PhantomData<T>

Implementations§

Source§

impl<A: AvxNum, T: FftNum> MixedRadix16xnAvx<A, T>

Source

unsafe fn new_with_avx(inner_fft: Arc<dyn Fft<T>>) -> Self

Source

unsafe fn perform_column_butterflies(&self, buffer: impl AvxArrayMut<A>)

Source

unsafe fn perform_column_butterflies_immut( &self, input: impl AvxArray<A>, buffer: impl AvxArrayMut<A>, )

Source

unsafe fn transpose(&self, input: &[Complex<A>], output: &mut [Complex<A>])

Source

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

Source

unsafe fn perform_fft_inplace( &self, buffer: &mut [Complex<T>], scratch: &mut [Complex<T>], )

Source

unsafe fn perform_fft_immut( &self, input: &[Complex<T>], output: &mut [Complex<T>], scratch: &mut [Complex<T>], )

Source

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 MixedRadix16xnAvx<A, T>

Source§

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 MixedRadix16xnAvx<A, T>

Source§

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 more
Source§

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 more
Source§

fn process_with_scratch( &self, buffer: &mut [Complex<T>], scratch: &mut [Complex<T>], )

Divides buffer into chunks of size self.len(), and computes a FFT on each chunk. Read more
Source§

fn get_inplace_scratch_len(&self) -> usize

Returns the size of the scratch buffer required by process_with_scratch Read more
Source§

fn get_outofplace_scratch_len(&self) -> usize

Returns the size of the scratch buffer required by process_outofplace_with_scratch Read more
Source§

fn get_immutable_scratch_len(&self) -> usize

Returns the size of the scratch buffer required by process_immutable_with_scratch Read more
Source§

fn process(&self, buffer: &mut [Complex<T>])

Computes a FFT in-place. Read more
Source§

impl<A: AvxNum, T> Length for MixedRadix16xnAvx<A, T>

Source§

fn len(&self) -> usize

The FFT size that this algorithm can process

Auto Trait Implementations§

§

impl<A, T> !RefUnwindSafe for MixedRadix16xnAvx<A, T>

§

impl<A, T> !UnwindSafe for MixedRadix16xnAvx<A, T>

§

impl<A, T> Freeze for MixedRadix16xnAvx<A, T>
where <A as AvxNum>::VectorType: Freeze,

§

impl<A, T> Send for MixedRadix16xnAvx<A, T>
where T: Send,

§

impl<A, T> Sync for MixedRadix16xnAvx<A, T>
where T: Sync,

§

impl<A, T> Unpin for MixedRadix16xnAvx<A, T>
where <A as AvxNum>::VectorType: Unpin, T: Unpin,

§

impl<A, T> UnsafeUnpin for MixedRadix16xnAvx<A, T>
where <A as AvxNum>::VectorType: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.