A hybrid approach for computing products of high-dimensional geometric algebras

Geometric Algebra is considered as a very intuitive tool to deal with geometric problems and it appears to be increasingly efficient and useful to deal with computer graphics solutions. For example, the Conformal Geometric Algebra includes circles, spheres, planes and lines as algebraic objects, and intersections between these objects are also algebraic objects. More complex objects such as conics, quadric surfaces can also be expressed and be manipulated using an extension of the conformal Geometric Algebra. However due to high dimension of their representations in Geometric Algebra, implementations of Geometric Algebra that are currently available do not allow efficient realizations of these objects. This paper presents a Geometric Algebra implementation dedicated for both low and high dimensions. The proposed method is a hybrid solution for precomputed code with fast execution and runtime computations with low memory requirement. More specifically, the proposed method combines a precomputed table approach with a recursive method using binary trees. Some rules are defined to select the most appropriate choice, according to the dimension of the algebra and the type of multivectors involved in the product. The resulting implementation is well suited for high dimensional spaces (e.g. algebra of dimension 15) as well as for lower dimensional space. This paper details the integration of this hybrid method as a plug-in into Gaalop, which is a very advanced optimizing code generator. This paper also presents some benchmarks to show the performances of our method, especially in high dimensional spaces.

[1]  Stephen J. Sangwine,et al.  Clifford Multivector Toolbox (for MATLAB) , 2017 .

[2]  Dietmar Hildenbrand,et al.  Foundations of Geometric Algebra Computing , 2012, Geometry and Computing.

[3]  Bertfried Fauser,et al.  On Parallelizing the Clifford Algebra Product for CLIFFORD , 2012, 1206.3682.

[4]  Eckhard Hitzer,et al.  Double Conformal Geometric Algebra , 2017 .

[5]  Leo Dorst,et al.  Geometric Algebra , 2019, Computer Vision, A Reference Guide.

[6]  Uwe Wössner,et al.  Gaalet - A C+ + Expression Template Library for Implementing Geometrie Algebra , 2010, High-End Visualization Workshop.

[7]  Ahmad Hosney Awad Eid,et al.  Optimized Automatic Code Generation for Geometric Algebra Based Algorithms with Ray Tracing Application , 2016, ArXiv.

[8]  Lucie Druoton,et al.  The Non-Degenerate Dupin Cyclides in the Space of Spheres Using Geometric Algebra , 2012 .

[9]  Eckhard Hitzer,et al.  Double conformal space-time algebra , 2016 .

[10]  Laurent Fuchs,et al.  Implementing Geometric Algebra Products with Binary Trees , 2014 .

[11]  Stephen Mann,et al.  Geometric algebra for computer science - an object-oriented approach to geometry , 2007, The Morgan Kaufmann series in computer graphics.

[12]  Bertfried Fauser,et al.  Using Periodicity Theorems for Computations in Higher Dimensional Clifford Algebras , 2014 .

[13]  Christian Perwass,et al.  Geometric Algebra with Applications in Engineering , 2008, Geometry and Computing.

[14]  Christian Steinmetz,et al.  Geometric Algebra Enhanced Precompiler for C++, OpenCL and Mathematica’s OpenCLLink , 2014 .

[15]  Vincent Nozick,et al.  A Geometric Algebra Implementation using Binary Tree , 2017 .

[16]  Daniel Fontijne,et al.  Gaigen 2:: a geometric algebra implementation generator , 2006, GPCE '06.

[17]  P K Harikrishnan,et al.  Early Proceedings of the Alterman Conference on Geometric Algebra and Summer School on Kahler Calculus , 2016 .