pub struct ComplexFft<T: Transcendental> { /* private fields */ }Expand description
Radix-2 Decimation-In-Time (DIT) complex FFT.
Supports sizes that are powers of two. All scratch buffers are pre-allocated
at construction time — process() performs zero heap allocations.
Implementations§
Source§impl<T: Transcendental> ComplexFft<T>
impl<T: Transcendental> ComplexFft<T>
Sourcepub fn inverse(&self, data: &mut [Complex<T>])
pub fn inverse(&self, data: &mut [Complex<T>])
Inverse complex FFT — interleaved Complex<T> API.
Result is scaled by 1/N.
§Panics
Panics if data.len() != self.size().
Sourcepub fn forward_soa(&self, re: &mut [T], im: &mut [T])
pub fn forward_soa(&self, re: &mut [T], im: &mut [T])
Forward complex FFT — SoA (Structure of Arrays) API.
Operates on separate real and imaginary arrays. Both must have length
self.size(). Zero heap allocations in the process path.
With the simd feature, f32/f64 variants use hardware SIMD via
F32x4/F64x2 for the butterfly arithmetic.
Sourcepub fn inverse_soa(&self, re: &mut [T], im: &mut [T])
pub fn inverse_soa(&self, re: &mut [T], im: &mut [T])
Inverse complex FFT — SoA API.
Result is scaled by 1/N.
Auto Trait Implementations§
impl<T> Freeze for ComplexFft<T>
impl<T> RefUnwindSafe for ComplexFft<T>where
T: RefUnwindSafe,
impl<T> Send for ComplexFft<T>
impl<T> Sync for ComplexFft<T>
impl<T> Unpin for ComplexFft<T>
impl<T> UnsafeUnpin for ComplexFft<T>
impl<T> UnwindSafe for ComplexFft<T>where
T: UnwindSafe,
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