Advances in Applied Clifford Algebras

, Volume 27, Issue 3, pp 2133–2151 | Cite as

A Geometric Algebra Implementation using Binary Tree



This paper presents an efficient implementation of geometric algebra, based on a recursive representation of the algebra elements using binary trees. The proposed approach consists in restructuring a state of the art recursive algorithm to handle parallel optimizations. The resulting algorithm is described for the outer product and the geometric product. The proposed implementation is usable for any dimensions, including high dimension (e.g. algebra of dimension 15). The method is compared with the main state of the art geometric algebra implementations, with a time complexity study as well as a practical benchmark. The tests show that our implementation is at least as fast as the main geometric algebra implementations.


Geometric algebra Implementation Binary trees 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrahams, D., Gurtovoy, A.: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison-Wesley Professional, Boston (2004)Google Scholar
  2. 2.
    Clifford, W.K.: Applications of Grassmann’s extensive algebra. Am. J. Math. Pure Appl. 1, 350–358 (1878)MathSciNetMATHGoogle Scholar
  3. 3.
    Dorst, L., Fontijne, D., Mann, S.: Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry. Morgan Kaufmann Publishers Inc., San Francisco (2007)Google Scholar
  4. 4.
    Easter, R.B., Hitzer, E.: Double Conformal Geometric Algebra for Quadrics and Darboux Cyclides. CGI2016Google Scholar
  5. 5.
    Leißa, R., Haffner, I., Hack, S.: Sierra: A SIMD Extension for C++. In: Proceedings of the 2014 Workshop on Programming Models for SIMD/Vector Processing. WPMVP ’14, pp. 17–24. ACM, NY, USA (2014) doi:10.1145/2568058.2568062
  6. 6.
    Fontijne, D.: Gaigen 2:: a geometric algebra implementation generator. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, pp. 141–150. ACM (2006)Google Scholar
  7. 7.
    Fontijne, D.: GAViewer Documentation Version 0.84. University of Amsterdam.
  8. 8.
    Fuchs, L., Théry, L.: Implementing Geometric Algebra Products with Binary Trees. Advances in Applied Clifford Algebras, p. 22. Springer, Berlin (2014)Google Scholar
  9. 9.
    Hildenbrand, D.: Foundations of Geometric Algebra Computing. Springer, Berlin (2013)CrossRefMATHGoogle Scholar
  10. 10.
    Kanatani, K.: Understanding Geometric Algebra: Hamilton, Grassmann, and Clifford for Computer Vision and Graphics. CRC Press, Boca Raton (2015)CrossRefMATHGoogle Scholar
  11. 11.
    Perwass, C.: CLUCal/CLUViz Interactive Visualization [online]. (2010)

Copyright information

© Springer International Publishing 2017

Authors and Affiliations

  1. 1.Laboratoire d’Informatique Gaspard-Monge Equipe A3SI, UMR 8049Université Paris-Est Marne-la-ValléeMarne-la-ValléeFrance
  2. 2.JFLI UMI 3527CNRS, NIITokyoJapan
  3. 3.Laboratoire XLIM-ASALI, UMR CNRS 7252Université de PoitiersPoitiersFrance

Personalised recommendations