la-stack 0.5.0

Fast, stack-allocated linear algebra for fixed dimensions
Documentation
[package]
name = "la-stack"
version = "0.5.0"
edition = "2024"
rust-version = "1.99.0"
autobenches = false
license = "BSD-3-Clause"
description = "Fast, stack-allocated linear algebra for fixed dimensions"
readme = "README.md"
documentation = "https://docs.rs/la-stack"
repository = "https://github.com/acgetchell/la-stack"
homepage = "https://github.com/acgetchell/la-stack"
categories = [ "mathematics", "science" ]
keywords = [ "linear-algebra", "geometry", "const-generics", "exact-arithmetic", "robust-predicates" ]
include = [
    "/Cargo.toml",
    "/CHANGELOG.md",
    "/CITATION.cff",
    "/CONTRIBUTING.md",
    "/LICENSE",
    "/README.md",
    "/REFERENCES.md",
    "/SECURITY.md",
    "/benches/**/*.rs",
    "/docs/**/*.md",
    "/docs/assets/**/*.csv",
    "/docs/assets/**/*.jpg",
    "/docs/assets/**/*.png",
    "/docs/assets/**/*.provenance.json",
    "/docs/assets/**/*.svg",
    "/examples/**/*.rs",
    "/src/**/*.rs",
    "/tests/*.proptest-regressions",
    "/tests/*.rs",
    "/tests/common/**/*.rs",
]

[dependencies]
# All runtime deps are optional; see [features] below.
# Must stay in sync with num-rational
num-bigint = { version = "0.4.8", optional = true }
num-rational = { version = "0.4.2", optional = true }
num-traits = { version = "0.2.19", optional = true }

[dev-dependencies]
allocation-counter = "0.8.1"
approx = "0.5.1"
criterion = { version = "0.8.2", features = [ "html_reports" ] }
pastey = "0.2.3"
proptest = "1.12.0"

[features]
default = [  ]
# cfg-only feature gate for benchmark-only fixtures.
bench = [  ]
exact = [ "dep:num-bigint", "dep:num-rational", "dep:num-traits" ]

[[example]]
name = "exact_det_3x3"
required-features = [ "exact" ]

[[example]]
name = "exact_sign_3x3"
required-features = [ "exact" ]

[[example]]
name = "exact_solve_3x3"
required-features = [ "exact" ]

[[example]]
name = "rational_input_5x5"
required-features = [ "exact" ]

[[bench]]
name = "angle"
harness = false
required-features = [ "bench" ]

[[bench]]
name = "exact"
harness = false
required-features = [ "bench", "exact" ]

[[bench]]
name = "interval"
harness = false
required-features = [ "bench" ]

[[bench]]
name = "rational_solve"
harness = false
required-features = [ "bench", "exact" ]

[[bench]]
name = "linear_form"
harness = false
required-features = [ "bench" ]

[[bench]]
name = "gram"
harness = false
required-features = [ "bench" ]

[profile.release]
lto = "fat"
codegen-units = 1

[package.metadata.docs.rs]
features = [ "exact" ]
rustdoc-args = [ "--cfg", "docsrs" ]

[workspace]
members = [ "benches/comparison" ]
default-members = [ "." ]
resolver = "3"

[lints]
workspace = true

[workspace.lints.rust]
warnings = { level = "deny", priority = -1 }
unsafe_code = "forbid"
missing_docs = { level = "deny", priority = 0 }
dead_code = { level = "deny", priority = 0 }
unreachable_pub = { level = "deny", priority = 0 }
unexpected_cfgs = { level = "deny", priority = 0, check-cfg = [ 'cfg(docsrs)', 'cfg(la_stack_pre_rational_input_api)' ] }

[workspace.lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"

[workspace.lints.clippy]
cargo = { level = "warn", priority = -1 }
extra_unused_type_parameters = "warn"
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
redundant_pub_crate = { level = "allow", priority = 0 }