fourier
fourier copied to clipboard
Fast Fourier transforms (FFTs) in Rust
Since I am fairly new to rust, I have a hard time understanding how to use this library. It would be great if that could be expanded
This was partially completed, but only `fourier-algorithms` was released. The `fourier` crate itself must be updated. Prompted by https://github.com/rust-lang/rust/issues/79908.
The currently supported radices are 2, 3, 4, and 8. Small primes 5 and 7 should be added for parity with other FFT libraries. Larger powers of two might be...
I'm not a web guy, so I'm not sure what an idiomatic JavaScript/TypeScript interface should look like, but I imagine there's a desire for fast web FFTs and I imagine...
The mixed-radix FFT algorithm's performance isn't too bad (at the time of writing, powers of three are something like 60% slower than FFTW on my machine). *However*, the mixed-radix algorithm...
When profiling with `perf`, a huge amount of time (40-60% of the entire transform) seems to be spent in the very first "narrow SIMD" pass, where the stride isn't large...
Real-valued FFTs have lots of optimizations and are relevant in some domains (audio?) so this would be a good thing to add. I imagine this should be a new trait...
Since arm/aarch64 intrinsics are nightly-only, a nightly feature could enable this support.
As discussed in #7, precision testing could be done with a high precision DFT.
Since AVX-512 intrinsics are nightly-only, a nightly feature could enable this support.