Skip to content

qu1x/vee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Vector Expression Emitter (VEE): Geometric Algebra Code Generator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages