[package]
name = "scirs2-optimize"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "Optimization module for SciRS2 (scirs2-optimize)"
readme = "README.md"
license.workspace = true
repository.workspace = true
keywords = ["optimization", "minimize", "scientific", "scipy", "numerical"]
categories = ["science", "mathematics", "algorithms"]

[lints]
workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]


[dependencies]
# Core dependencies - ALL numeric/array/random functionality from scirs2-core (SciRS2 POLICY)
scirs2-core = { workspace = true, features = ["simd", "parallel", "linalg", "gpu", "random", "array"] }
scirs2-linalg = { workspace = true }
scirs2-stats = { workspace = true }
thiserror = { workspace = true }

# Optimization specific dependencies
argmin = { workspace = true }
scirs2-sparse = { workspace = true }
statrs = { workspace = true }
serde = { workspace = true }

# Async dependencies (optional)
tokio = { workspace = true, optional = true }
futures = { workspace = true, optional = true }

[features]
default = ["parallel"]
parallel = ["scirs2-core/parallel"]
async = ["tokio", "futures"]
python = ["scirs2-core/python"] # Python bindings support

[dev-dependencies]
approx = { workspace = true }
criterion = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
chrono = { workspace = true, features = ["serde"] }

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


