Skip to main content

Crate oxifft

Crate oxifft 

Source
Expand description

§OxiFFT

Pure Rust implementation of FFTW - the Fastest Fourier Transform in the West.

OxiFFT provides high-performance FFT routines with:

  • Complex DFT (forward and inverse)
  • Real FFT (R2C/C2R)
  • DCT/DST transforms
  • Multi-dimensional transforms
  • Batch processing
  • SIMD optimization
  • Threading support
  • Wisdom system for plan caching

§Quick Start

use oxifft::{Complex, Direction, Flags, Plan};

// Create a plan for 256-point forward FFT
let plan = Plan::dft_1d(256, Direction::Forward, Flags::MEASURE)?;

// Execute the transform
let mut input = vec![Complex::new(1.0, 0.0); 256];
let mut output = vec![Complex::zero(); 256];
plan.execute(&mut input, &mut output);

Re-exports§

pub use api::fft;
pub use api::fft2d;
pub use api::fft2d_split;
pub use api::fft3d_split;
pub use api::fft_batch;
pub use api::fft_nd;
pub use api::fft_nd_split;
pub use api::fft_split;
pub use api::ifft;
pub use api::ifft2d;
pub use api::ifft2d_split;
pub use api::ifft3d_split;
pub use api::ifft_batch;
pub use api::ifft_nd;
pub use api::ifft_nd_split;
pub use api::ifft_split;
pub use api::irfft;
pub use api::irfft2d;
pub use api::irfft3d;
pub use api::irfft_batch;
pub use api::irfft_nd;
pub use api::rfft;
pub use api::rfft2d;
pub use api::rfft3d;
pub use api::rfft_batch;
pub use api::rfft_nd;
pub use api::Direction;
pub use api::Flags;
pub use api::GuruPlan;
pub use api::Plan;
pub use api::Plan2D;
pub use api::Plan3D;
pub use api::PlanND;
pub use api::R2rKind;
pub use api::R2rPlan;
pub use api::RealPlan;
pub use api::RealPlan2D;
pub use api::RealPlan3D;
pub use api::RealPlanKind;
pub use api::RealPlanND;
pub use api::SplitPlan;
pub use api::SplitPlan2D;
pub use api::SplitPlan3D;
pub use api::SplitPlanND;
pub use kernel::Complex;
pub use kernel::Float;
pub use kernel::IoDim;
pub use kernel::Tensor;
pub use dft::solvers::ct::fft_radix2;
pub use dft::solvers::ct::fft_radix2_inplace;
pub use dft::solvers::ct::ifft_radix2;
pub use dft::solvers::ct::ifft_radix2_inplace;
pub use dft::solvers::ct::ifft_radix2_normalized;
pub use dft::solvers::direct::dft_direct;
pub use dft::solvers::direct::idft_direct;
pub use dft::solvers::direct::idft_direct_normalized;
pub use dft::solvers::nop::dft_nop;
pub use rdft::solvers::dct1;
pub use rdft::solvers::dct2;
pub use rdft::solvers::dct3;
pub use rdft::solvers::dct4;
pub use rdft::solvers::dht;
pub use rdft::solvers::dst1;
pub use rdft::solvers::dst2;
pub use rdft::solvers::dst3;
pub use rdft::solvers::dst4;
pub use api::alloc_complex;
pub use api::alloc_complex_aligned;
pub use api::alloc_real;
pub use api::alloc_real_aligned;
pub use api::is_aligned;
pub use api::AlignedBuffer;
pub use api::DEFAULT_ALIGNMENT;
pub use nufft::nufft_type1;
pub use nufft::nufft_type2;
pub use nufft::nufft_type3;
pub use nufft::Nufft;
pub use nufft::NufftError;
pub use nufft::NufftOptions;
pub use nufft::NufftResult;
pub use nufft::NufftType;
pub use frft::frft;
pub use frft::frft_checked;
pub use frft::ifrft;
pub use frft::ifrft_checked;
pub use frft::Frft;
pub use frft::FrftError;
pub use frft::FrftResult;
pub use conv::convolve;
pub use conv::convolve_circular;
pub use conv::convolve_complex;
pub use conv::convolve_complex_mode;
pub use conv::convolve_mode;
pub use conv::convolve_with_mode;
pub use conv::correlate;
pub use conv::correlate_complex;
pub use conv::correlate_complex_mode;
pub use conv::correlate_mode;
pub use conv::polynomial_multiply;
pub use conv::polynomial_multiply_complex;
pub use conv::polynomial_power;
pub use conv::ConvMode;
pub use autodiff::fft_dual;
pub use autodiff::fft_jacobian;
pub use autodiff::grad_fft;
pub use autodiff::grad_ifft;
pub use autodiff::jvp_fft;
pub use autodiff::vjp_fft;
pub use autodiff::DiffFftPlan;
pub use autodiff::Dual;
pub use autodiff::DualComplex;

Modules§

api
Public user-facing API for OxiFFT.
autodiff
Automatic differentiation for FFT operations.
conv
FFT-based convolution and polynomial multiplication.
dft
Complex DFT implementations.
frft
Fractional Fourier Transform (FrFT) implementation.
kernel
Core planner and data structures.
nufft
Non-uniform FFT (NUFFT) implementation.
rdft
Real DFT implementations.
reodft
Real Even/Odd DFT (DCT/DST) implementations.
simd
SIMD abstraction layer for high-performance FFT computation.
support
Support utilities.
threading
Parallel execution support for multi-threaded FFT computation.