# vfft vfft is a very fast fourier transform implementation. It currently optimizes for small, power-of-two inputs sizes. **vfft is under heavy development. If you are in need of a high-quality CPU-based FFT, use rustfft. If you need a GPU-based one, use VkFFT.** The goal of this project is to define simple, state-of-the-art fft implementations for small input sizes (under ~8k). My current north star is to meet or exceed VkFft's peformance for workloads where the FFT input and output remains resident on the GPU. This is useful for realtime audio-reactive graphics and ocean wave simulations, and probably more. Eventually, I would also like to implement a world-class CPU implementation, but this is a secondary concern. ## Portability MacOS and Linux are confirmed to work. Windows not tested. ## API ```rust use num::Complex; use vfft::cpu::{ExecutionPlan, fft}; ... let mut data: Vec> = ...; let mut plan = ExecutionPlan::new(data)?; fft(&mut result_fft, &mut plan); ``` ## Testing ```bash # Accuracy $ cargo test -- --no-capture # Performance $ cargo bench ``` ## AI Disclosure This source code was written by a human and checked for errors with an LLM. ## License. MIT License.