A Rust library for computing cross-correlation of signals using FFT. This crate is useful in signal processing, pattern matching, and time-series analysis where cross-correlation is a common operation.
It supports multiple correlation modes (Full, Same, Valid) and allows different FFT backends.
Performance Uses FFT-based convolution for O(n log n) performance. Reuses FFT plans to avoid repeated allocations and planning overhead. SIMD-friendly design (with optional optimizations for AVX2/NEON).
let mut src = vec!;
let dst = vec!;
let mode = Full;
// determine FFT size.
let fft_size = mode.fft_size;
let mut planner = new;
let fft_forward = planner.plan_fft_forward;
let fft_inverse = planner.plan_fft_inverse;
// create correlation executor
let correlation = create_real_f32
.unwrap;
let corr = correlation.correlate_managed.unwrap;
This project is licensed under either of
at your option.