[package]
name = "numerica"
authors = ["Ben Ruijl <ben@symbolica.io>"]
keywords = ["algebra", "mathematics", "integer", "float", "rational"]
version = "1.3.0"
edition = "2024"
license = "MIT"
description = "Open-source math library for exact and floating point computations"
readme = "Readme.md"
repository = "https://github.com/symbolica-dev/numerica"
rust-version = "1.88"

[features]
# import/export objects that do not depend on the state using serde
serde = ["dep:serde", "rug/serde"]
# allow importing/exporting of atoms with a state map using bincode
bincode = ["dep:bincode", "dep:bincode-trait-derive"]
python = ["pyo3", "numpy"]
python_stubgen = ["python", "pyo3-stub-gen"]

[dependencies]
pyo3 = { version = "0.28", features = ["num-complex"], optional = true }
numpy = { version = "0.28", optional = true }
rand = "0.9"
rand_xoshiro = "0.7"
rug = "1.27.0"
wide = "1.1"
ahash = "0.8.7"
dyn-clone = "1.0"
colored = "3.0"
smallvec = "1.13"
serde = { version = "1.0", features = ["derive"], optional = true }
bincode = { version = "2.0", optional = true }
bincode-trait-derive = { version = "0.1.0", optional = true }
pyo3-stub-gen = { version = "0.17", default-features = false, features = [
    "numpy",
], optional = true }
itertools = "0.14.0"
rayon = "1.11"
