/* * ============================ * FFTW3 Transform Types (Summary) * ============================ * * 1. Complex-to-Complex (C2C) * --------------------------- * - Input: Complex[] * - Output: Complex[] * - Use: General-purpose FFT * - API: fftwf_plan_dft_1d / 2d / 3d / many * * 2. Real-to-Complex (R2C) * ------------------------ * - Input: Real[] * - Output: Complex[] (half-spectrum) * - Use: Signal processing, time series * - API: fftwf_plan_dft_r2c_1d / 2d / 3d / many * * 3. Complex-to-Real (C2R) * ------------------------ * - Input: Complex[] (half-spectrum) * - Output: Real[] * - Use: Inverse of R2C * - API: fftwf_plan_dft_c2r_1d / 2d / 3d / many * * 4. Real-to-Real (R2R) * --------------------- * - Input: Real[] * - Output: Real[] * - Use: DCT/DST for PDEs, image compression * - Types: * FFTW_REDFT00 → DCT-I * FFTW_REDFT01 → DCT-II (used in JPEG) * FFTW_REDFT10 → DCT-III * FFTW_REDFT11 → DCT-IV * FFTW_RODFT00 → DST-I * FFTW_RODFT01 → DST-II * FFTW_RODFT10 → DST-III * FFTW_RODFT11 → DST-IV * FFTW_R2HC → Real-to-halfcomplex * FFTW_HC2R → Halfcomplex-to-real * FFTW_DHT → Hartley Transform * - API: fftwf_plan_r2r_1d / 2d / 3d / guru / many * * 5. Split-Complex Transforms * --------------------------- * - Input/Output: Separate real and imaginary arrays * - Use: Specialized memory layouts * - API: fftwf_plan_guru_split_dft, split_r2c, split_c2r * * ============================ * FFTW is fast because: * - Auto-tuned plan selection * - SIMD and cache-aware * - Wisdom reuse * - Multithreading support * - Custom codelets per architecture * ============================ */