Garamon: A Geometric Algebra Library Generator - Breuils, Stéphane; Nozick, Vincent; Fuchs, Laurent (Advances in applied Clifford algebras, 2019)
This paper presents both a recursive scheme to perform Geometric Algebra operations over a prefix tree, and Garamon, a C++ library generator implementing these recursive operations. While for low dimension vector spaces, precomputing all the Geometric Algebra products is an efficient strategy, it fails for higher dimensions where the operation should be computed at run time. This paper describes how a prefix tree can be a support for a recursive formulation of Geometric Algebra operations. This recursive approach presents a much better complexity than the usual run time methods. This paper also details how a prefix tree can represent efficiently the dual of a multivector. These results constitute the foundations for Garamon, a C++ library generator synthesizing efficient C++/Python libraries implementing Geometric Algebra in both low and higher dimensions, with any arbitrary metric. Garamon takes advantage of the prefix tree formulation to implement Geometric Algebra operations on high dimensions hardly accessible with state-of-the-art software implementations. Garamon is designed to produce easy to install, easy to use, effective and numerically stable libraries. The design of the libraries is based on a data structure using precomputed functions for low dimensions and a smooth transition to the new recursive products for higher dimensions.