vee

Crates.iovee
lib.rsvee
version0.1.6
created_at2023-01-19 10:32:25.990399+00
updated_at2025-11-05 20:35:27.643147+00
descriptionVector Expression Emitter (VEE): Geometric Algebra Code Generator
homepage
repositoryhttps://github.com/qu1x/vee
max_upload_size
id762478
size3,132,017
Rouven Spreckels (n3vu0r)

documentation

https://docs.rs/vee

README

vee

Vector Expression Emitter (VEE): Geometric Algebra Code Generator

Build Documentation Downloads Version Rust License

The goal of this crate is to generate optimized code for geometric algebra flavors.

Features

  • 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 ("{:<}").
  • 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}").
  • 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.

Roadmap

  • 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.

Pseudo-Local Documentation Builds

Build the documentation with cargo-tex. Note that navigating the documentation requires web access as KaTeX is embedded via remote CDN.

cargo tex --open

License

Copyright © 2025 Rouven Spreckels rs@qu1x.dev

Licensed under the terms of the MPL-2.0.

Contribution

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.

Commit count: 37

cargo fmt