[features]
# Treat warnings as a build error.
strict = []
mpi = ["dep:mpi", "dep:superslice", "dep:memoffset"]

[package]
name = "kifmm"
version = "1.0.2"
edition = "2021"
authors = ["Srinath Kailasa <srinathkailasa@gmail.com>"]
description = "Kernel-independent fast multipole method"
license = "BSD-3-Clause"
homepage = "https://github.com/bempp/kifmm"
repository = "https://github.com/bempp/kifmm"
readme = "README.md"
keywords = ["numerics"]
categories = ["mathematics", "science"]

[lib]
name = "kifmm"
crate-type = ["cdylib", "lib"]

[dependencies]
itertools = "0.13.*"
num = "0.4"
rayon = "1.9"
rand = "0.8.5"
kifmm-fftw-sys = { version = "0.2.0"}
green-kernels = { version = "0.2.0"}
lazy_static = "1.4.0"
num-complex = "0.4.5"
mpi = { version = "0.8.*", optional = true}
memoffset = {version = "0.9.1", optional = true}
pulp = "0.18.12"
bytemuck = "1.16.0"
superslice = {version = "1.0.0", optional = true}
rand_distr = "0.4.3"
rlst = {version = "0.2.0"}

[dev-dependencies]
approx = "0.5"
criterion = { version = "0.5.*", features = ["html_reports"]}

[build-dependencies]
cbindgen = "0.26.0"

[[bench]]
name = "direct_f32"
harness = false

[[bench]]
name = "direct_f64"
harness = false

[[bench]]
name = "laplace_mat_f64"
harness = false

[[bench]]
name = "laplace_mat_f32"
harness = false

[[bench]]
name = "laplace_f32"
harness = false

[[bench]]
name = "laplace_f64"
harness = false

[package.metadata.docs.rs]
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
rustdoc-args = [ "--html-in-header", "./src/docs-header.html" ]

[lints.clippy]
wildcard_imports = "forbid"
