1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! GPU-accelerated FFT using [wgpu](https://github.com/gfx-rs/wgpu) compute shaders.
//!
//! This crate provides fast Fourier transform (FFT) computation on GPU hardware
//! using WebGPU compute shaders via the [wgpu](https://github.com/gfx-rs/wgpu) library.
//!
//! ## Features
//!
//! - **GPU-accelerated**: Uses wgpu compute shaders for high-performance FFT computation.
//! - **Stockham Radix-4/2**: Fast algorithm for power-of-two FFT sizes.
//! - **Arbitrary sizes**: Bluestein's algorithm for non-power-of-two sizes (CPU fallback).
//! - **Batch processing**: Efficiently process multiple FFTs in a single call.
//! - **Fallback support**: Automatically falls back to CPU software rendering if no GPU is available.
//!
//! ## Quick Start
//!
//! ```no_run
//! use wgsl_fft::GpuFft;
//! use num_complex::Complex;
//!
//! let fft = GpuFft::new().expect("GPU or CPU fallback required");
//! let input = vec![vec![Complex::new(1.0, 0.0); 1024]];
//! let spectrum = fft.fft(&input).expect("FFT failed");
//! ```
//!
//! ## Module Structure
//!
//! - [`fft`] - Main FFT implementation with [`GpuFft`] and [`FftExecutor`] trait
//! - [`pipelines`] - Pre-compiled FFT pipelines for embedding in larger GPU pipelines
//! - [`shaders`] - WGSL compute shader source code
//! - [`benchmark`] - Benchmarking utilities
pub use ;
pub use ;
pub use CuFft;
pub use HipFft;
pub use RocFft;