×

Gaigen

swMATH ID: 4958
Software Authors: Daniel Fontijne; Leo Dorst; Tim Bouma
Description: 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).
Homepage: https://sourceforge.net/projects/g25/
Related Software: Gaalop; CLUCalc; CLIFFORD; GMac; GABLE; GluCat; Gaalet; Versor; Clifford Multivector Toolbox; Cliffosor; CLU; OpenCLLink; OpenGL; GitHub; Mathematica; GAviewer; KamiWaAi; Garamon; GA; CUDA
Cited in: 35 Documents

Citations by Year