[package]
name = "gam-solve"
version = "0.3.136"
edition = "2024"
description = "REML/LAML outer solver and PIRLS inner engine for the gam penalized-likelihood engine"
license = "AGPL-3.0-or-later"
repository = "https://github.com/SauersML/gam"
rust-version = "1.93"

[lints.rust]
warnings = "deny"


[dependencies]
dyn-stack = "0.13.2"
faer = "0.24.0"
gam-geometry = { path = "../gam-geometry", version = "=0.3.136" }
gam-gpu = { path = "../gam-gpu", version = "=0.3.136" }
gam-identifiability = { path = "../gam-identifiability", version = "=0.3.136" }
gam-linalg = { path = "../gam-linalg", version = "=0.3.136" }
gam-math = { path = "../gam-math", version = "=0.3.136" }
gam-model-api = { path = "../gam-model-api", version = "=0.3.136" }
gam-problem = { path = "../gam-problem", version = "=0.3.136" }
gam-runtime = { path = "../gam-runtime", version = "=0.3.136" }
gam-spec = { path = "../gam-spec", version = "=0.3.136" }
gam-terms = { path = "../gam-terms", version = "=0.3.136" }
log = "0.4.29"
ndarray = { version = "0.17.2", features = ["serde", "rayon"] }
opt = "0.5.2"
rayon = "1.12.0"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.149", features = ["float_roundtrip"] }
statrs = "0.18.0"

[target.'cfg(target_os = "linux")'.dependencies]
cudarc = { version = "0.19.6", default-features = false, features = ["std", "driver", "runtime", "nvrtc", "cublas", "cublaslt", "cusparse", "cusolver", "cusolvermg", "curand", "nvtx", "cupti", "fallback-dynamic-loading", "cuda-12080"] }

[dev-dependencies]
approx = "0.5.1"
gam-test-support = { path = "../gam-test-support" }
# Test-only utilities used by the in-crate `#[cfg(test)]` suites carved out of
# the root `gam` crate (#1521): `num-dual` for the autodiff jet cross-checks in
# `reml::objective` tests, `rand` for deterministic synthetic designs, and
# `tempfile` for the cache-session round-trip tests. Versions track the root
# workspace crate so the carved tests compile against the same APIs.
num-dual = "0.13.6"
rand = "0.10.1"
tempfile = "3.27.0"
