ogdoad 1.0.5

Clifford algebras and quadratic forms over exact, finite, local, transfinite, and game-adjacent scalar backends.
Documentation
[workspace]
members = ["grundy"]

[package]
name = "ogdoad"
version = "1.0.5"
edition = "2021"
description = "Clifford algebras and quadratic forms over exact, finite, local, transfinite, and game-adjacent scalar backends."
license = "AGPL-3.0-or-later"
authors = ["a9lim <mx@a9l.im>"]
repository = "https://github.com/a9lim/ogdoad"
homepage = "https://github.com/a9lim/ogdoad"
documentation = "https://docs.rs/ogdoad"
readme = "README.md"
keywords = ["clifford-algebra", "surreal-numbers", "nimbers", "quadratic-forms", "game-theory"]
categories = ["mathematics", "science"]
# Keep the published crate to its compilable Rust surface, public examples and
# tests, package metadata, and the instruction files colocated with the source.
# Research experiments, Lean developments, papers, project infrastructure, and
# Python-distribution inputs remain in the repository but outside the `.crate`.
include = [
    "/src/**",
    "/examples/**",
    "/tests/**",
    "/README.md",
    "/LICENSE",
    "/AGENTS.md",
    "/CLAUDE.md",
]

# docs.rs builds the default, pure-Rust feature set. The `python` feature pulls
# in PyO3's extension-module linkage, which a docs build neither needs nor wants.
[package.metadata.docs.rs]
no-default-features = false

[lib]
name = "ogdoad"
# cdylib for the Python extension module; rlib for `cargo test` and examples.
crate-type = ["cdylib", "rlib"]

[dependencies]
# PyO3 is optional and only pulled in for the Python build. Gating it behind
# the `python` feature keeps `cargo test` pure-Rust (no libpython linkage),
# so the math core stays verifiable without the Python toolchain in the loop.
pyo3 = { version = "0.29", features = ["abi3-py39"], optional = true }

[features]
default = []
python = ["dep:pyo3", "pyo3/extension-module"]

[dev-dependencies]
# Property-based testing of the Scalar ring axioms across every backend.
proptest = "1"