[package]
name = "num-dual"
version = "0.13.0"
authors = [
    "Gernot Bauer <bauer@itt.uni-stuttgart.de>",
    "Philipp Rehner <prehner@ethz.ch>",
]
rust-version = "1.87"
edition = "2024"
readme = "README.md"
license = "MIT OR Apache-2.0"
description = "Generalized (hyper) dual numbers for the calculation of exact (partial) derivatives"
homepage = "https://github.com/itt-ustutt/num-dual"
repository = "https://github.com/itt-ustutt/num-dual"
keywords = ["mathematics", "numerics", "differentiation"]
categories = ["data-structures", "science", "mathematics"]
exclude = ["/.github/*", "*.ipynb", "./docs/*"]

[lib]
name = "num_dual"

[dependencies]
num-traits = "0.2"
nalgebra = "0.34"
numpy = { version = "0.27", optional = true }
approx = "0.5"
simba = "0.9"
serde = { version = "1.0", features = ["derive"], optional = true }
ndarray = { version = "0.17", optional = true }

[dependencies.pyo3]
version = "0.27"
optional = true
features = ["multiple-pymethods", "extension-module", "abi3", "abi3-py39"]

[profile.release]
lto = true

[features]
default = []
python_macro = []
python = ["pyo3", "numpy", "python_macro"]

[dev-dependencies]
criterion = "0.8"
serde_json = "1.0"

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