Vector Expression Emitter (VEE): Geometric Algebra Code Generator
The goal of this crate is to generate optimized code for geometric algebra flavors.
- Uniquely reduce symbolic multivector expressions.
- Generate expressions in text form.
- Use symbols with Unicode combining diacritical marks (
"{}"). - Use Symbols labelled after basis blades (
"{:#}"). - Expand (
"{:+}") or reduce (i.e., factorize) expressions ("{}"). - Factor predominant sign (
"{:-}"). - Omit newlines (
"{:0}"). - Omit plus signs (
"{:<}").
- Use symbols with Unicode combining diacritical marks (
- Generate expressions in DOT form (i.e.,
text/vnd.graphviz).- Use symbols with Unicode diacritical marks (
"{:o}"). - Use Symbols labelled after basis blades (
"{:#o}"). - Expand (
"{:+o}") or reduce (i.e., factorize) expressions ("{:o}"). - Factor predominant sign (
"{:-o}"). - Change rank direction from top-to-bottom (TB) to left-to-right (LR) (
"{:0o}").
- Use symbols with Unicode diacritical marks (
- Eliminate orthonormalization conditions from expressions using reflection/projection operator by factoring pinned symbols, GCD coefficients, and predominant signs.
- Evaluate symbols as rationals.
- Count operations (i.e., multiplications and additions).
- Define the metric-agnostic basis (i.e., elliptic, parabolic, hyperbolic) and the multivector entities of the projective geometric algebra (PGA) for dimensions D = N + 1 < 8.
- Further optimize expressions to reduce operation count by domain-specific common subexpression elimination (CSE) targeting exterior products.
- Generate expressions in LaTeX and code form.
- Define other geometric algebra flavors.
See the release history to keep track of the development.
Build the documentation with cargo-tex. Note that navigating the documentation requires web access as KaTeX is embedded via remote CDN.
cargo tex --openCopyright © 2025 Rouven Spreckels rs@qu1x.dev
Licensed under the terms of the MPL-2.0.
Unless you explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Covered Software by You shall be licensed as above, without any additional terms or conditions.