[package]
name = "math-bem"
version = "0.4.1"
edition = { workspace = true }
authors = { workspace = true }
description = "High-performance Boundary Element Method library for acoustic scattering"
license = { workspace = true }
repository = { workspace = true }
keywords = ["bem", "boundary-element", "acoustics", "numerical", "hrtf"]
categories = ["science", "mathematics", "simulation"]
[lib]
name = "math_audio_bem"
path = "src/lib.rs"
[[bin]]
name = "roomsim"
path = "bin/room_simulator_bem.rs"
required-features = ["cli", "native", "parallel", "memory-optimized", "out-of-core"]
[[bin]]
name = "qa-suite"
path = "bin/qa_suite.rs"
required-features = ["native", "cli", "parallel"]
[dependencies]
math-xem-common = { workspace = true }
math-solvers = { workspace = true, default-features = false }
math-wave = { workspace = true }
ndarray = { version = "0.17", default-features = false, features = ["rayon", "serde"] }
num-complex = { workspace = true, features = ["serde"] }
oxiblas-ndarray = { workspace = true, optional = true }
rayon = { workspace = true }
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-rayon = { workspace = true, optional = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
log = { workspace = true }
env_logger = { workspace = true, optional = true }
chrono = { workspace = true }
clap = { workspace = true, optional = true }
[dev-dependencies]
directories = { workspace = true }
[features]
default = ["native", "cli"]
native = [
"ndarray/blas",
"ndarray/rayon",
"oxiblas-ndarray",
"dep:env_logger",
]
cli = ["native", "dep:clap"]
parallel = []
memory-optimized = []
out-of-core = []
wasm = [
"dep:wasm-bindgen",
"dep:wasm-bindgen-rayon",
]
pure-rust = ["native"]
[[example]]
name = "simple_sphere_test"
required-features = ["native"]