geometric_algebra icon indicating copy to clipboard operation
geometric_algebra copied to clipboard

Generate(d) custom libraries for geometric algebras

actions Docs crates.io

About

This repository allows you to describe geometric algebras 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 Parser: See examples
  • 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

Supported SIMD ISAs

  • x86, x86_64: sse2
  • arm, aarch64: neon
  • wasm32: simd128