Renames Automorph => Automorphism. Renames Transpose => Reversal. Renames Conjugate => Conjugation. Removes Reflection (as that is covered by Transformation). Fixes std::fmt::Display for BasisElement again (not only -1 but also 0).
16 lines
1.2 KiB
Markdown
16 lines
1.2 KiB
Markdown
[](https://github.com/Lichtso/geometric_algebra/actions/workflows/actions.yaml)
|
|
[](https://docs.rs/geometric_algebra/)
|
|
[](https://crates.io/crates/geometric_algebra)
|
|
|
|
## About
|
|
This repository allows you to describe [geometric algebras](https://en.wikipedia.org/wiki/Geometric_algebra) with 1 to 16 generator elements and generate SIMD-ready, dependency-less libraries for them. It also comes with a set of prebuilt projective geometric algebras in 1D, 2D and 3D which are elliptic, parabolic (euclidian) or hyperbolic.
|
|
|
|
## Architecture
|
|
- [DSL](https://en.wikipedia.org/wiki/Domain-specific_language) Parser: See [examples](.github/workflows/actions.yaml)
|
|
- Algebra: Generates the multiplication tables
|
|
- Compiler: Constructs an AST from the multiplication tables
|
|
- Optimizer: Simplifies the AST
|
|
- Legalizer: Inserts missing expressions in the AST
|
|
- Emitter: Serializes the AST to source code
|
|
- [Rust](https://www.rust-lang.org/)
|
|
- [GLSL](https://www.khronos.org/opengl/wiki/Core_Language_(GLSL))
|