[package]
edition = "2024"
rust-version = "1.88"
name = "puremp"
version = "0.1.9"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A pure-Rust arbitrary-precision arithmetic library — integers, rationals and MPFR-class floats — with a dependency-free clean-room core (optional serde/rand bridges), plus a C ABI and a CLI."
readme = "README.md"
keywords = [
"bignum",
"bigint",
"arbitrary-precision",
"rational",
"no-std",
]
categories = [
"mathematics",
"no-std",
"algorithms",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/puremp"
[features]
algebraic = [
"rational",
"poly",
"matrix",
"float",
]
alloc = []
cli = [
"std",
"rational",
]
complex = ["int"]
decimal = ["int"]
default = [
"std",
"rational",
"float",
"dyadic",
"decimal",
"complex",
"poly",
"interval",
"matrix",
"lattice",
"algebraic",
"cli",
]
dyadic = ["int"]
ffi = [
"std",
"rational",
"float",
]
float = [
"int",
"rational",
]
int = ["alloc"]
interval = ["float"]
lattice = ["rational"]
matrix = ["alloc"]
num-traits = [
"dep:num-traits",
"int",
"rational",
]
poly = ["alloc"]
rand = [
"dep:rand_core",
"int",
]
rational = ["int"]
serde = [
"dep:serde",
"int",
]
std = ["alloc"]
[lib]
name = "puremp"
path = "src/lib.rs"
[[bin]]
name = "puremp"
path = "src/bin/puremp/main.rs"
required-features = ["cli"]
[[example]]
name = "bench"
path = "examples/bench.rs"
required-features = [
"std",
"float",
]
[[test]]
name = "algebraic"
path = "tests/algebraic.rs"
[[test]]
name = "algebraic_from_float"
path = "tests/algebraic_from_float.rs"
[[test]]
name = "complex"
path = "tests/complex.rs"
[[test]]
name = "decimal"
path = "tests/decimal.rs"
[[test]]
name = "dyadic"
path = "tests/dyadic.rs"
[[test]]
name = "fixed_float"
path = "tests/fixed_float.rs"
[[test]]
name = "float"
path = "tests/float.rs"
[[test]]
name = "inf_rational"
path = "tests/inf_rational.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "interval"
path = "tests/interval.rs"
[[test]]
name = "lattice"
path = "tests/lattice.rs"
[[test]]
name = "matrix"
path = "tests/matrix.rs"
[[test]]
name = "mod_int"
path = "tests/mod_int.rs"
[[test]]
name = "num_traits"
path = "tests/num_traits.rs"
[[test]]
name = "poly"
path = "tests/poly.rs"
[[test]]
name = "poly_factor"
path = "tests/poly_factor.rs"
[[test]]
name = "property"
path = "tests/property.rs"
[[test]]
name = "quadratic"
path = "tests/quadratic.rs"
[[test]]
name = "serde"
path = "tests/serde.rs"
[[test]]
name = "serde_extended"
path = "tests/serde_extended.rs"
[dependencies.num-traits]
version = "0.2"
optional = true
default-features = false
[dependencies.rand_core]
version = "0.6"
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["alloc"]
optional = true
default-features = false
[dev-dependencies.serde_json]
version = "1"
[lints.rust]
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "deny"
[profile.release]
lto = "thin"