ACM Home Page
Please provide us with feedback. Feedback
Gaigen 2:: a geometric algebra implementation generator
Full text PdfPdf (367 KB)
Source Generative Programming And Component Engineering archive
Proceedings of the 5th international conference on Generative programming and component engineering table of contents
Portland, Oregon, USA
SESSION: Applications table of contents
Pages: 141 - 150  
Year of Publication: 2006
ISBN:1-59593-237-2
Author
Daniel Fontijne  University of Amsterdam
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 48,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1173706.1173728
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
L. Dorst and D. Fontijne. An Algebraic Foundation for Object-Oriented Euclidean Geometry. ITM 2003 proceedings, 2003.
 
2
L. Dorst and S. Mann. Geometric algebra: a computation framework for geometrical applications: Part I Computer Graphics and Applications, 2002, Volume 22, May June 2002, pp. 24--31.
 
3
C. Doran and A. Lasenby. Geometric Algebra for Physicists. Cambridge University Press, 2003.
 
4
 
5
 
6
I. Bell. Ian Bell's pages on geometric algebra. http://www.iancgbell.clara.net/maths/geoalg1.htm
 
7
R. Clint Whaley and Antoine Petitet and Jack J. Dongarra. Automated Empirical Optimization of Software and the ATLAS Project. Parallel Computing, 2001, volume 27, issue 1-2, pp 3--35.
 
8
Markus Püschel et al. SPIRAL: Code Generation for DSP Transforms. Proceedings of the IEEE, volume 93, issue 2, pp 232--275.
 
9
T. Veldhuizen. Blitz++: Object-Oriented Scientific Computing. http://www.oonumerics.org/blitz
 
10
D. Hildenbrand and E. Bayro-Corrochano and J. Zamora-Esquivel. Advanced Geometric Approach for Graphics and Visual Guided Robot Object Manipulation. Proceedings of ICRA conference, April 2005, Barcelona, Spain.
 
11
D. Tolani and A. Goswami and N. Badler. Real-time inverse kinematics techniques for anthopomorphic limbs. University of Pennsylvania, 2000.