├── .github └── workflows │ └── run_test.yml ├── .gitignore ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── UpgradeGuide4to5.md ├── benches ├── bench_check_neon_2to1024.rs ├── bench_check_scalar_2to1024.rs ├── bench_check_sse_2to1024.rs ├── bench_compare_scalar_neon.rs ├── bench_compare_scalar_sse_avx.rs ├── bench_compare_scalar_wasm_simd.rs ├── bench_rustfft.rs ├── bench_rustfft_neon.rs ├── bench_rustfft_scalar.rs ├── bench_rustfft_sse.rs ├── bench_rustfft_wasm_simd.rs └── compare_3n2m_strategies.rs ├── examples ├── asmtest.rs └── concurrency.rs ├── rustfmt.toml ├── src ├── algorithm │ ├── bluesteins_algorithm.rs │ ├── butterflies.rs │ ├── dft.rs │ ├── good_thomas_algorithm.rs │ ├── mixed_radix.rs │ ├── mod.rs │ ├── raders_algorithm.rs │ ├── radix3.rs │ ├── radix4.rs │ └── radixn.rs ├── array_utils.rs ├── avx │ ├── avx32_butterflies.rs │ ├── avx32_utils.rs │ ├── avx64_butterflies.rs │ ├── avx64_utils.rs │ ├── avx_bluesteins.rs │ ├── avx_mixed_radix.rs │ ├── avx_planner.rs │ ├── avx_raders.rs │ ├── avx_vector.rs │ └── mod.rs ├── common.rs ├── fft_cache.rs ├── fft_helper.rs ├── lib.rs ├── math_utils.rs ├── neon │ ├── mod.rs │ ├── neon_butterflies.rs │ ├── neon_common.rs │ ├── neon_planner.rs │ ├── neon_prime_butterflies.rs │ ├── neon_radix4.rs │ ├── neon_utils.rs │ └── neon_vector.rs ├── plan.rs ├── sse │ ├── mod.rs │ ├── sse_butterflies.rs │ ├── sse_common.rs │ ├── sse_planner.rs │ ├── sse_prime_butterflies.rs │ ├── sse_radix4.rs │ ├── sse_utils.rs │ └── sse_vector.rs ├── test_utils.rs ├── twiddles.rs └── wasm_simd │ ├── mod.rs │ ├── wasm_simd_butterflies.rs │ ├── wasm_simd_common.rs │ ├── wasm_simd_planner.rs │ ├── wasm_simd_prime_butterflies.rs │ ├── wasm_simd_radix4.rs │ ├── wasm_simd_utils.rs │ └── wasm_simd_vector.rs ├── tests └── accuracy.rs └── tools ├── gen_simd_butterflies ├── Cargo.lock ├── Cargo.toml └── src │ ├── main.rs │ └── templates │ └── prime_template.hbs.rs ├── genbutterflies.py ├── p2comparison.py ├── p2comparison_neon.py └── p2comparison_wasm_simd.py /.github/workflows/run_test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/.github/workflows/run_test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/README.md -------------------------------------------------------------------------------- /UpgradeGuide4to5.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/UpgradeGuide4to5.md -------------------------------------------------------------------------------- /benches/bench_check_neon_2to1024.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_check_neon_2to1024.rs -------------------------------------------------------------------------------- /benches/bench_check_scalar_2to1024.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_check_scalar_2to1024.rs -------------------------------------------------------------------------------- /benches/bench_check_sse_2to1024.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_check_sse_2to1024.rs -------------------------------------------------------------------------------- /benches/bench_compare_scalar_neon.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_compare_scalar_neon.rs -------------------------------------------------------------------------------- /benches/bench_compare_scalar_sse_avx.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_compare_scalar_sse_avx.rs -------------------------------------------------------------------------------- /benches/bench_compare_scalar_wasm_simd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_compare_scalar_wasm_simd.rs -------------------------------------------------------------------------------- /benches/bench_rustfft.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_rustfft.rs -------------------------------------------------------------------------------- /benches/bench_rustfft_neon.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_rustfft_neon.rs -------------------------------------------------------------------------------- /benches/bench_rustfft_scalar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_rustfft_scalar.rs -------------------------------------------------------------------------------- /benches/bench_rustfft_sse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_rustfft_sse.rs -------------------------------------------------------------------------------- /benches/bench_rustfft_wasm_simd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/bench_rustfft_wasm_simd.rs -------------------------------------------------------------------------------- /benches/compare_3n2m_strategies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/benches/compare_3n2m_strategies.rs -------------------------------------------------------------------------------- /examples/asmtest.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/examples/asmtest.rs -------------------------------------------------------------------------------- /examples/concurrency.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/examples/concurrency.rs -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /src/algorithm/bluesteins_algorithm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/bluesteins_algorithm.rs -------------------------------------------------------------------------------- /src/algorithm/butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/butterflies.rs -------------------------------------------------------------------------------- /src/algorithm/dft.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/dft.rs -------------------------------------------------------------------------------- /src/algorithm/good_thomas_algorithm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/good_thomas_algorithm.rs -------------------------------------------------------------------------------- /src/algorithm/mixed_radix.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/mixed_radix.rs -------------------------------------------------------------------------------- /src/algorithm/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/mod.rs -------------------------------------------------------------------------------- /src/algorithm/raders_algorithm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/raders_algorithm.rs -------------------------------------------------------------------------------- /src/algorithm/radix3.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/radix3.rs -------------------------------------------------------------------------------- /src/algorithm/radix4.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/radix4.rs -------------------------------------------------------------------------------- /src/algorithm/radixn.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/algorithm/radixn.rs -------------------------------------------------------------------------------- /src/array_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/array_utils.rs -------------------------------------------------------------------------------- /src/avx/avx32_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx32_butterflies.rs -------------------------------------------------------------------------------- /src/avx/avx32_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx32_utils.rs -------------------------------------------------------------------------------- /src/avx/avx64_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx64_butterflies.rs -------------------------------------------------------------------------------- /src/avx/avx64_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx64_utils.rs -------------------------------------------------------------------------------- /src/avx/avx_bluesteins.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx_bluesteins.rs -------------------------------------------------------------------------------- /src/avx/avx_mixed_radix.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx_mixed_radix.rs -------------------------------------------------------------------------------- /src/avx/avx_planner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx_planner.rs -------------------------------------------------------------------------------- /src/avx/avx_raders.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx_raders.rs -------------------------------------------------------------------------------- /src/avx/avx_vector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/avx_vector.rs -------------------------------------------------------------------------------- /src/avx/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/avx/mod.rs -------------------------------------------------------------------------------- /src/common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/common.rs -------------------------------------------------------------------------------- /src/fft_cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/fft_cache.rs -------------------------------------------------------------------------------- /src/fft_helper.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/fft_helper.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/math_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/math_utils.rs -------------------------------------------------------------------------------- /src/neon/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/mod.rs -------------------------------------------------------------------------------- /src/neon/neon_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_butterflies.rs -------------------------------------------------------------------------------- /src/neon/neon_common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_common.rs -------------------------------------------------------------------------------- /src/neon/neon_planner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_planner.rs -------------------------------------------------------------------------------- /src/neon/neon_prime_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_prime_butterflies.rs -------------------------------------------------------------------------------- /src/neon/neon_radix4.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_radix4.rs -------------------------------------------------------------------------------- /src/neon/neon_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_utils.rs -------------------------------------------------------------------------------- /src/neon/neon_vector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/neon/neon_vector.rs -------------------------------------------------------------------------------- /src/plan.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/plan.rs -------------------------------------------------------------------------------- /src/sse/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/mod.rs -------------------------------------------------------------------------------- /src/sse/sse_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_butterflies.rs -------------------------------------------------------------------------------- /src/sse/sse_common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_common.rs -------------------------------------------------------------------------------- /src/sse/sse_planner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_planner.rs -------------------------------------------------------------------------------- /src/sse/sse_prime_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_prime_butterflies.rs -------------------------------------------------------------------------------- /src/sse/sse_radix4.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_radix4.rs -------------------------------------------------------------------------------- /src/sse/sse_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_utils.rs -------------------------------------------------------------------------------- /src/sse/sse_vector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/sse/sse_vector.rs -------------------------------------------------------------------------------- /src/test_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/test_utils.rs -------------------------------------------------------------------------------- /src/twiddles.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/twiddles.rs -------------------------------------------------------------------------------- /src/wasm_simd/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/mod.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_butterflies.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_common.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_planner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_planner.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_prime_butterflies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_prime_butterflies.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_radix4.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_radix4.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_utils.rs -------------------------------------------------------------------------------- /src/wasm_simd/wasm_simd_vector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/src/wasm_simd/wasm_simd_vector.rs -------------------------------------------------------------------------------- /tests/accuracy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tests/accuracy.rs -------------------------------------------------------------------------------- /tools/gen_simd_butterflies/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/gen_simd_butterflies/Cargo.lock -------------------------------------------------------------------------------- /tools/gen_simd_butterflies/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/gen_simd_butterflies/Cargo.toml -------------------------------------------------------------------------------- /tools/gen_simd_butterflies/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/gen_simd_butterflies/src/main.rs -------------------------------------------------------------------------------- /tools/gen_simd_butterflies/src/templates/prime_template.hbs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/gen_simd_butterflies/src/templates/prime_template.hbs.rs -------------------------------------------------------------------------------- /tools/genbutterflies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/genbutterflies.py -------------------------------------------------------------------------------- /tools/p2comparison.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/p2comparison.py -------------------------------------------------------------------------------- /tools/p2comparison_neon.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/p2comparison_neon.py -------------------------------------------------------------------------------- /tools/p2comparison_wasm_simd.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ejmahler/RustFFT/HEAD/tools/p2comparison_wasm_simd.py --------------------------------------------------------------------------------