[package]
edition = "2021"
name = "oxifft"
version = "0.1.3"
authors = ["COOLJAPAN OU (Team KitaSan)"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust implementation of FFTW - the Fastest Fourier Transform in the West"
homepage = "https://github.com/cool-japan/oxifft"
documentation = "https://docs.rs/oxifft"
readme = "README.md"
keywords = [
"fft",
"fftw",
"dft",
"signal-processing",
"simd",
]
categories = [
"algorithms",
"science",
"mathematics",
]
license = "Apache-2.0"
repository = "https://github.com/cool-japan/oxifft"
[features]
const-fft = []
cuda = []
default = [
"std",
"threading",
]
f128-support = []
f16-support = []
gpu = []
metal = []
mpi = ["dep:mpi"]
portable_simd = []
pruned = []
simd = []
sparse = []
std = [
"dep:serde_json",
"num-complex/std",
"num-traits/std",
"serde/std",
]
streaming = []
sve = ["dep:libc"]
threading = [
"std",
"dep:rayon",
]
wasm = [
"dep:wasm-bindgen",
"dep:js-sys",
]
[lib]
name = "oxifft"
path = "src/lib.rs"
[[example]]
name = "autodiff_fft"
path = "examples/autodiff_fft.rs"
[[example]]
name = "batch_fft"
path = "examples/batch_fft.rs"
[[example]]
name = "convolution"
path = "examples/convolution.rs"
[[example]]
name = "multidimensional"
path = "examples/multidimensional.rs"
[[example]]
name = "nufft_example"
path = "examples/nufft_example.rs"
[[example]]
name = "real_fft"
path = "examples/real_fft.rs"
[[example]]
name = "simple_fft"
path = "examples/simple_fft.rs"
[[example]]
name = "sparse_fft"
path = "examples/sparse_fft.rs"
required-features = ["sparse"]
[[example]]
name = "streaming_fft"
path = "examples/streaming_fft.rs"
required-features = ["streaming"]
[[example]]
name = "wisdom_usage"
path = "examples/wisdom_usage.rs"
[[test]]
name = "guru_plan"
path = "tests/guru_plan.rs"
[[test]]
name = "rustfft_comparison"
path = "tests/rustfft_comparison.rs"
[[test]]
name = "size_coverage"
path = "tests/size_coverage.rs"
[[test]]
name = "split_complex"
path = "tests/split_complex.rs"
[[bench]]
name = "beyond_fftw"
path = "benches/beyond_fftw.rs"
harness = false
required-features = [
"sparse",
"pruned",
"streaming",
"const-fft",
]
[[bench]]
name = "dft_1d"
path = "benches/dft_1d.rs"
harness = false
[dependencies.hashbrown]
version = "0.16"
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.libm]
version = "0.2"
[dependencies.mpi]
version = "0.8"
optional = true
[dependencies.num-complex]
version = "0.4"
default-features = false
[dependencies.num-traits]
version = "0.2"
features = ["libm"]
default-features = false
[dependencies.oxifft-codegen]
version = "0.1.3"
[dependencies.rayon]
version = "1.11"
optional = true
[dependencies.seahash]
version = "4.1"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.spin]
version = "0.10"
features = [
"spin_mutex",
"rwlock",
"once",
"lazy",
]
default-features = false
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.7"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.10"
[dev-dependencies.rustfft]
version = "6.4"
[lints.clippy]
all = "warn"
nursery = "warn"
pedantic = "warn"
[lints.rust]
unsafe_op_in_unsafe_fn = "warn"