Gaigen
Gaigen is a program which can generate implementations of geometric algebras. It generates C++ and C source code which implements a geometric algebra requested by the user. The choice to create a program which generates implementations of these algebras was made because we wanted performance similar to optimized hand-written code, while maintaining full generality; for (scientific) research and experimentation, many geometric algebras with different dimensionality, signatures and other properties may be required. Instead of coding each algebra by hand, Gaigen provides the possibility to generate the code for exactly the geometric algebra the user requires. This code may be less efficient than fully optimized hand-written code, but is likely to be much more efficient than one library which tries to support all possible algebras at once. Gaigen supports algebras with a dimension from 0 to 8. The implementation of products used in Gaigen becomes infeasable for dimensions higher than about 7 or 8. For basis vectors, all 3 signatures are supported (-1, 0, +1). It is also possible to create reciprocal pairs of null vectors, which square to 0 with themselves, but to +1 or -1 with the other. 7 basic products are implemented (geometric product, outer product, left and right contraction, scalar product, (modified) Hestenes inner product) plus the outer morphism operator and the delta product. Several useful functions (such as factorization, meet and join) have been implemented. Everything has been designed with memory and time efficiency in mind. It is possible to optimize Gaigen for your platform, application or processor by replacing the lowest computation layer. Gaigen can suggest optimizations for the algebras you generate with it by using the provided profiler function. Benchmarks in a ray tracing application show that Gaigen is 30 to 60 times faster than CLU (C++). In another application, Gaigen was 6000 times faster than Gable (Matlab).
Keywords for this software
References in zbMATH (referenced in 36 articles )
Showing results 1 to 20 of 36.
Sorted by year (- Breuils, Stephane; Tachibana, Kanta; Hitzer, Eckhard: New applications of Clifford’s geometric algebra (2022)
- Alves, R.; Hildenbrand, D.; Steinmetz, C.; Uftring, P.: Efficient development of competitive Mathematica solutions based on geometric algebra with GAALOPWeb (2020)
- Franchini, Silvia; Gentile, Antonio; Vassallo, Giorgio; Vitabile, Salvatore: Implementation and evaluation of medical imaging techniques based on conformal geometric algebra (2020)
- Hildenbrand, Dietmar; Hrdina, Jaroslav; Návrat, Aleš; Vašík, Petr: Local controllability of snake robots based on CRA, theory and practice (2020)
- Sousa, Eduardo Vera; Fernandes, Leandro A. F.: TbGAL: a tensor-based library for geometric algebra (2020)
- Breuils, Stéphane; Nozick, Vincent; Fuchs, Laurent: Garamon: a geometric algebra library generator (2019)
- Orouji, Niloofar; Sadr, Ali: A hardware implementation for colour edge detection using Prewitt-inspired filters based on geometric algebra (2019)
- Eid, Ahmad Hosny: An extended implementation framework for geometric algebra operations on systems of coordinate frames of arbitrary signature (2018)
- Benger, Werner; Dobler, Wolfgang: Massive geometric algebra: visions for C++ implementations of geometric algebra to scale into the big data era (2017)
- Breuils, Stéphane; Nozick, Vincent; Fuchs, Laurent: A geometric algebra implementation using binary tree (2017)
- Du, Juan; Goldman, Ron; Mann, Stephen: Modeling 3D geometry in the Clifford algebra (\mathbbR(4,4)) (2017)
- Franchini, Silvia; Gentile, Antonio; Sorbello, Filippo; Vassallo, Giorgio; Vitabile, Salvatore: Embedded coprocessors for native execution of geometric algebra operations (2017)
- Hildenbrand, D.; Albert, J.; Charrier, P.; Steinmetz, Chr.: Geometric algebra computing for heterogeneous systems (2017)
- Hrdina, Jaroslav; Návrat, Aleš; Vašík, Petr; Matoušek, R.: CGA-based robotic snake control (2017)
- Hrdina, J.; Návrat, A.; Vašík, P.; Matoušek, R.: Geometric control of the trident snake robot based on CGA (2017)
- Papaefthymiou, Margarita; Hildenbrand, Dietmar; Papagiannakis, George: A conformal geometric algebra code generator comparison for virtual character simulation in mixed reality (2017)
- Sangwine, Stephen J.; Hitzer, Eckhard: Clifford multivector toolbox (for MATLAB) (2017)
- Tingelstad, Lars; Egeland, Olav: Automatic multivector differentiation and optimization (2017)
- Tørdal, Sondre Sanden; Hovland, Geir; Tyapin, Ilya: Efficient implementation of inverse kinematics on a 6-DOF industrial robot using conformal geometric algebra (2017)
- Ahmad Hosney Awad Eid: Optimized Automatic Code Generation for Geometric Algebra Based Algorithms with Ray Tracing Application (2016) arXiv