math-solvers 0.4.1

High-performance linear solvers for BEM and FEM
Documentation
[package]
name = "math-solvers"
version = "0.4.1"
description = "High-performance linear solvers for BEM and FEM"
edition = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
keywords = ["linear-algebra", "solvers", "gmres", "preconditionner"]
categories = ["science", "mathematics"]

[lib]
name = "math_audio_solvers"
path = "src/lib.rs"

[dependencies]
# Core numerical computing
ndarray = { version = "0.17", default-features = false, features = ["rayon", "serde"] }
num-complex = { workspace = true, features = ["serde"] }
num-traits = { workspace = true }

# BLAS/LAPACK (native only)
oxiblas-ndarray = { workspace = true, optional = true }
oxiblas-core = { version = "0.2", optional = true }
bytemuck = { version = "1", optional = true }

# Parallel processing
rayon = { workspace = true, optional = true }

# Error handling
thiserror = { workspace = true }

# Logging
log = { workspace = true }

# WASM feature: enables parallel processing via wasm-bindgen-rayon
# WASM-specific dependencies
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-rayon = { workspace = true, optional = true }

[dev-dependencies]
approx = { workspace = true }

[features]
default = ["native"]

# Native feature: enables BLAS/LAPACK and rayon
native = [
    "ndarray/blas",
    "ndarray/rayon",
    "oxiblas-ndarray",
    "oxiblas-core",
    "bytemuck",
    "rayon",
]

# Parallel processing (works with both native and wasm)
parallel = ["rayon"]

wasm = [
    "rayon",
    "wasm-bindgen",
    "wasm-bindgen-rayon",
]