[package]
edition = "2021"
name = "g_math"
version = "0.4.1"
authors = ["Niels Erik Toren"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Multi-domain fixed-point arithmetic with geometric extension: Lie groups, manifolds, ODE solvers, tensors, fiber bundles — zero-float, 0 ULP transcendentals"
homepage = "https://github.com/nierto/gMath"
documentation = "https://docs.rs/g_math"
readme = "README.md"
keywords = [
"fixed-point",
"arithmetic",
"precision",
"mathematics",
"no-float",
]
categories = [
"mathematics",
"algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/nierto/gMath"
[features]
balanced = []
compact = []
default = []
embedded = []
inference = ["dep:rayon"]
infinite-precision = [
"dep:num-bigint",
"dep:num-traits",
"dep:num-integer",
]
legacy-tests = []
realtime = []
rebuild-tables = []
scientific = []
serde = ["dep:serde"]
[lib]
name = "g_math"
path = "src/lib.rs"
[[example]]
name = "quickstart"
path = "examples/quickstart.rs"
[[test]]
name = "arithmetic_sweep_validation"
path = "tests/arithmetic_sweep_validation.rs"
[[test]]
name = "boundary_stress"
path = "tests/boundary_stress.rs"
[[test]]
name = "compact_profile_validation"
path = "tests/compact_profile_validation.rs"
[[test]]
name = "compound_operations"
path = "tests/compound_operations.rs"
[[test]]
name = "decimal_fasc_integration"
path = "tests/decimal_fasc_integration.rs"
[[test]]
name = "decimal_transcendental_validation"
path = "tests/decimal_transcendental_validation.rs"
[[test]]
name = "decimal_vs_binary_throughput"
path = "tests/decimal_vs_binary_throughput.rs"
[[test]]
name = "decompose_adversarial"
path = "tests/decompose_adversarial.rs"
[[test]]
name = "decompose_mpmath_validation"
path = "tests/decompose_mpmath_validation.rs"
[[test]]
name = "decompose_ulp_measurement"
path = "tests/decompose_ulp_measurement.rs"
[[test]]
name = "decompose_validation"
path = "tests/decompose_validation.rs"
[[test]]
name = "domain_arithmetic_validation"
path = "tests/domain_arithmetic_validation.rs"
[[test]]
name = "domain_matrix_validation"
path = "tests/domain_matrix_validation.rs"
[[test]]
name = "eigen_svd_schur_validation"
path = "tests/eigen_svd_schur_validation.rs"
[[test]]
name = "error_handling"
path = "tests/error_handling.rs"
[[test]]
name = "fasc_ulp_validation"
path = "tests/fasc_ulp_validation.rs"
[[test]]
name = "fractal_router_integration"
path = "tests/fractal_router_integration.rs"
[[test]]
name = "fused_ops_validation"
path = "tests/fused_ops_validation.rs"
[[test]]
name = "fused_transcendentals_validation"
path = "tests/fused_transcendentals_validation.rs"
[[test]]
name = "incremental_wins_validation"
path = "tests/incremental_wins_validation.rs"
[[test]]
name = "l1c_l1d_l3a_validation"
path = "tests/l1c_l1d_l3a_validation.rs"
[[test]]
name = "l1d_l3a_ulp_measurement"
path = "tests/l1d_l3a_ulp_measurement.rs"
[[test]]
name = "l2a_l5a_ulp_measurement"
path = "tests/l2a_l5a_ulp_measurement.rs"
[[test]]
name = "l2a_ode_validation"
path = "tests/l2a_ode_validation.rs"
[[test]]
name = "l3b_curvature_validation"
path = "tests/l3b_curvature_validation.rs"
[[test]]
name = "l3c_spd_grassmannian_validation"
path = "tests/l3c_spd_grassmannian_validation.rs"
[[test]]
name = "l4a_lie_group_validation"
path = "tests/l4a_lie_group_validation.rs"
[[test]]
name = "l4a_mpmath_validation"
path = "tests/l4a_mpmath_validation.rs"
[[test]]
name = "l4b_projective_validation"
path = "tests/l4b_projective_validation.rs"
[[test]]
name = "l5a_fiber_bundle_validation"
path = "tests/l5a_fiber_bundle_validation.rs"
[[test]]
name = "lazy_matrix_validation"
path = "tests/lazy_matrix_validation.rs"
[[test]]
name = "linalg_validation"
path = "tests/linalg_validation.rs"
[[test]]
name = "mode_routing_validation"
path = "tests/mode_routing_validation.rs"
[[test]]
name = "q8_24_validation"
path = "tests/q8_24_validation.rs"
[[test]]
name = "realtime_profile_validation"
path = "tests/realtime_profile_validation.rs"
[[test]]
name = "s1_serialization_extended"
path = "tests/s1_serialization_extended.rs"
[[test]]
name = "sinhcosh_validation"
path = "tests/sinhcosh_validation.rs"
[[test]]
name = "tensor_validation"
path = "tests/tensor_validation.rs"
[[test]]
name = "tq19_bench"
path = "tests/tq19_bench.rs"
[[test]]
name = "tq19_validation"
path = "tests/tq19_validation.rs"
[[test]]
name = "trace_asinh"
path = "tests/trace_asinh.rs"
[[test]]
name = "trace_asinh2"
path = "tests/trace_asinh2.rs"
[[test]]
name = "trace_chain"
path = "tests/trace_chain.rs"
[[test]]
name = "trace_coeffs"
path = "tests/trace_coeffs.rs"
[[test]]
name = "trace_cross"
path = "tests/trace_cross.rs"
[[test]]
name = "trace_final"
path = "tests/trace_final.rs"
[[test]]
name = "trace_ln"
path = "tests/trace_ln.rs"
[[test]]
name = "trace_q16_sin"
path = "tests/trace_q16_sin.rs"
[[test]]
name = "trace_q16_sin2"
path = "tests/trace_q16_sin2.rs"
[[test]]
name = "trace_q16_sin3"
path = "tests/trace_q16_sin3.rs"
[[test]]
name = "trace_sin_native"
path = "tests/trace_sin_native.rs"
[[test]]
name = "trace_sincos_step"
path = "tests/trace_sincos_step.rs"
[[test]]
name = "trace_sqrt"
path = "tests/trace_sqrt.rs"
[[test]]
name = "trace_sqrt2"
path = "tests/trace_sqrt2.rs"
[[test]]
name = "trace_sqrt3"
path = "tests/trace_sqrt3.rs"
[[test]]
name = "trace_sqrt4"
path = "tests/trace_sqrt4.rs"
[[test]]
name = "transcendental_ulp_validation"
path = "tests/transcendental_ulp_validation.rs"
[[test]]
name = "ugod_chain_persistence_test"
path = "tests/ugod_chain_persistence_test.rs"
[[test]]
name = "validation_benchmark"
path = "tests/validation_benchmark.rs"
[dependencies.num-bigint]
version = "0.4"
optional = true
[dependencies.num-integer]
version = "0.1"
optional = true
[dependencies.num-traits]
version = "0.2"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.4"
[dev-dependencies.num-bigint]
version = "0.4"
[dev-dependencies.num-rational]
version = "0.4"
[dev-dependencies.proptest]
version = "1.0"
[build-dependencies.num-bigint]
version = "0.4"
[build-dependencies.num-integer]
version = "0.1"
[build-dependencies.num-rational]
version = "0.4"
[build-dependencies.num-traits]
version = "0.2"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
'cfg(table_format, values("q16_16", "q32_32", "q64_64", "q128_128", "q256_256", "q512_512"))',
"cfg(q16_16)",
"cfg(q32_32)",
"cfg(q64_64)",
"cfg(q128_128)",
"cfg(q256_256)",
"cfg(q512_512)",
'cfg(feature, values("rebuild-tables", "serde", "inference"))',
]
[profile.bench]
opt-level = 3
lto = true
debug = 2
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 0