13 posts
OxiFFT 0.4.2 fixes a wrong-answer bug (not a precision bug) in the x86_64 SSE3 SIMD butterfly kernel that every non-AVX2 x86_64 CPU takes — a wrong complex-multiply lane order and twiddle-recurrence drift together failed 93 of 1447 tests by 10-100x the tolerance. Found by running the suite on x86_64 for the first time. Plus a Miri-driven pointer-provenance fix, four new soundness hardenings against attacker-influenceable wisdom strings, and a fuzz-harness tolerance bug of its own. Pure Rust FFT, no FFTW.
Pure Rust FFT and the rustfft replacement. OxiFFT 0.4.0 adds distributed real (r2c/c2r) MPI transforms, wires wisdom-based auto-tuning into MEASURE/PATIENT/EXHAUSTIVE planning so it really compares candidate algorithms, corrects the MSRV to 1.87, and ships a breaking cleanup of dead planner code plus a v2 wisdom binary format.
OxiFFT 0.4.1 is a small, focused release: it pulls in OxiCUDA 0.5.3, which fixes a race condition where async CUDA memory copies in oxicuda-fft could return before the transfer landed — risking silently corrupted or all-zero GPU transform results under load.
Pure Rust FFT and the rustfft replacement. OxiFFT 0.3.2 completes multi-rank MPI execution for the 3D pencil decomposition, gates AVX-512 codelets behind a default-off feature so the build stays clean on rustc 1.95 stable, hardens ND-plan error handling, and refreshes the OxiCUDA GPU backend.
Pure Rust FFT and the rustfft replacement: OxiFFT 0.3.1 adds Winograd mixed-radix Cooley-Tukey for smooth-7 sizes (retiring Bluestein for them), FFTW-style MEASURE/PATIENT auto-tuning with a binary wisdom format and an oxifft_tune CLI, plus an opt-in ndarray integration.
Pure Rust FFT and the rustfft replacement. OxiFFT 0.3.0 lands an FFT-based Makhoul DCT (~4× flop reduction), a 7-gate FFTW parity harness, GPU batch FFT with auto-chunking, 3D pencil MPI, a cache-oblivious 4-step transform, and real WASM SIMD v128 — 1360 tests passing, default build still 100% Rust.
OxiFFT, the Pure Rust FFT and rustfft replacement, turns runtime panics into compile-time errors: 0.2.0 makes 2D/3D and real plans Option-returning with honest types, ships a drop-in fftw-compat API to port C code, and adds Debug and #[must_use] across every plan type. 858 tests passing.
OxiFFT 0.1.4, the Pure Rust FFT and rustfft replacement, adds a full signal-processing module — Hilbert transform, Welch PSD, cepstrum, and FFT resampling — plus mel-spectrogram and MFCC audio analysis. No C, no Fortran, no FFTW.
OxiFFT 0.1.3 is a correctness patch for the Pure Rust FFTW replacement: it eliminates an infinite-recursion bug in the size-512/1024/4096 SIMD fallback dispatch for non-f32/f64 element types, drops a redundant buffer allocation, and consolidates licensing to a single Apache-2.0 LICENSE.
OxiFFT 0.1.2 is a packaging patch for the Pure Rust FFTW replacement: it removes a stray examples/**/CLAUDE.md path that broke crate unpacking on Windows, restoring clean cross-platform installs and unblocking PyPI publishing for dependent crates like scirs2-python.
SciRS2 0.1.2 completes the Pure Rust journey — FFT migrates from FFTW to Pure Rust OxiFFT, plus zero-allocation SIMD ops and functional optimizers (SGD/Adam/RMSprop). 100% Pure Rust by default on OxiBLAS + OxiFFT. No C, no Fortran.
OxiFFT 0.1.1 is a maintenance patch for the Pure Rust FFTW replacement: hashbrown and spin bumped to their latest, the MSRV pin dropped to track current Rust, and 48 clippy warnings eliminated for a zero-warning build at 652 passing tests.
OxiFFT 0.1.0 debuts — a 99% Rust port of FFTW3. Complex/real transforms, DCT/DST, multi-dimensional and batch FFTs, runtime-dispatched SIMD, and 20+ features beyond RustFFT (Sparse FFT, STFT, NUFFT, autodiff, GPU, MPI, WASM). The spectral backbone for the SciRS2 numerical stack.