Analytic inverse kinematics techniques for anthropometric limbs
Analytic inverse kinematics techniques for anthropometric limbs
Computing singularities of 3D vector fields with Geometric Algebra
Proceedings of the conference on Visualization '02
Modeling 3D Euclidean Geometry
IEEE Computer Graphics and Applications
Geometric Algebra: A computational framework for geometrical applications Part 1
IEEE Computer Graphics and Applications
Geometric Algebra: A Powerful Tool for Solving Geometric Problems in Visual Computing
SIBGRAPI-TUTORIALS '09 Proceedings of the 2009 Tutorials of the XXII Brazilian Symposium on Computer Graphics and Image Processing
A general framework for subspace detection in unordered multidimensional data
Pattern Recognition
Hi-index | 0.00 |
Geometric Algebra (GA) is an algebra that encodes geometry much better than standard techniques, which are mainly based on linear algebra with various extensions. Compared to standard techniques, GA has clearer semantics and a richer, more consistent language. This expresses itself, among others, in a much greater genericity of functions over the algebra. Exploiting this genericity efficiently is a problem that can be solved through generative programming.This paper describes our Geometric Algebra Implementation Generator Gaigen 2. Gaigen 2 synthesizes highly efficient GA implementations from the specification of the algebra. Functions over such algebras can be defined in a high-level coordinate-free domain-specific language, and Gaigen 2 transforms these functions into low-level coordinate-based code. This code can be emitted in any target language through a custom back-end. Benchmarks of our implementation show that the combination of GA and Gaigen 2 can rival the performance of standard geometry techniques, despite the greater abstraction and genericity of GA.To obtain this high performance, Gaigen 2 must adapt the generated code to the program that links to it. This is done via a profiling feedback loop. While running, the generated code makes a connection to the code generator. The generated code sends information about functions that should be optimized. The code generator registers this information and sends back new type information. After the program terminates, the code is regenerated according to the recorded profile. This profiling feedback technique may also be useful to implement other types of algebras.