/egg-nog

Experimenting with egg. Ref "egg: Fast and Extensible Equality Saturation"

Primary LanguageRust

Readme egg-nog

Inspiration

Egg tutorial code https://docs.rs/egg/0.6.0/egg/tutorials/_02_getting_started/index.html

Geometric Algebra

Core

Algebra G^n is extension of the inner product space R^n Identity: 1

Noncommutative Scalars: a, b, c TODO latex Multivectors: A,B,C Vectors: u, v, w

Vector inverse: (inv v) =? (* (magnitude v) v)

Implementing a Geometric Algebra System (GAS) using egg

See how far we can go with SymbolLang

We may want to separate scalars, vectors, multivectors

We may want some Analysis (even, odd?)

Get started

Install the Rust language: https://www.rust-lang.org/tools/install

Run the tests

cargo test

Install and run cargo-watch for file-change triggered checks

cargo install cargo-watch
cargo-watch -c -x check -x test # run check, then test

References

egg: Fast and Extensible Equality Saturation

https://arxiv.org/abs/2004.03082

SPORES reference

SPORES: Sum-Product Optimization via Relational Equality Saturation for Large Scale Linear Algebra https://arxiv.org/abs/2002.07951

Re Refs

T. J. Green, G. Karvounarakis, and V. Tannen. Provenance semirings

https://www.semanticscholar.org/paper/Provenance-semirings-Green-Karvounarakis/67f5dd72f7d53a2a60857dc57a0ac88f58d04b9b

Geometric algegra

http://www.faculty.luther.edu/~macdonal/GA&GC.pdf