g_math 0.1.1

Multi-domain fixed-point arithmetic library with 18 transcendental functions
Documentation
[package]
name = "g_math"
version = "0.1.1"
edition = "2021"
description = "Multi-domain fixed-point arithmetic library with 18 transcendental functions"
authors = ["Niels Erik Toren"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/nierto/gMath"
homepage = "https://github.com/nierto/gMath"
documentation = "https://docs.rs/g_math"
keywords = ["fixed-point", "arithmetic", "precision", "mathematics", "no-float"]
categories = ["mathematics", "algorithms"]
build = "build.rs"

[build-dependencies]
# Pure Rust BigInt for build-time table generation
# Used for exp/ln/trig lookup tables and rational arithmetic constants
num-bigint = "0.4"
num-traits = "0.2"
num-rational = "0.4"
num-integer = "0.1"

[dependencies]
# Optional: arbitrary-precision rational arithmetic (BigInt tier 8)
num-traits = { version = "0.2", optional = true }
num-bigint = { version = "0.4", optional = true }
num-integer = { version = "0.1", optional = true }

[dev-dependencies]
criterion = "0.4"
proptest = "1.0"
approx = "0.5"
num-bigint = "0.4"
num-rational = "0.4"

[features]
default = []

# Optional: BigInt tier 8 in RationalNumber (unbounded precision)
infinite-precision = ["dep:num-bigint", "dep:num-traits", "dep:num-integer"]

# Deployment profiles (select compute precision via GMATH_PROFILE env var)
embedded = []      # Q64.64, 19 decimals
balanced = []      # Q128.128, 38 decimals
scientific = []    # Q256.256, 77 decimals

# Feature gates for optional subsystems
legacy-tests = []        # Enable compilation of legacy test suites
rebuild-tables = []      # Regenerate lookup tables from build.rs (~20 min)

[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = [
    'cfg(table_format, values("q64_64", "q128_128", "q256_256", "q512_512"))',
    'cfg(q64_64)', 'cfg(q128_128)', 'cfg(q256_256)', 'cfg(q512_512)',
    'cfg(feature, values("rebuild-tables"))',
]

[profile.release]
debug = false
lto = true
codegen-units = 1
opt-level = 3

[profile.bench]
debug = true
lto = true
opt-level = 3