Skip to main content
Top

2019 | OriginalPaper | Chapter

Gajit: Symbolic Optimisation and JIT Compilation of Geometric Algebra in Python with GAALOP and Numba

Authors : Hugo Hadfield, Dietmar Hildenbrand, Alex Arsenovic

Published in: Advances in Computer Graphics

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Modern Geometric Algebra software systems tend to fall into one of two categories, either fast, difficult to use, statically typed, and syntactically different from the mathematics or slow, easy to use, dynamically typed and syntactically close to the mathematical conventions. Gajit is a system that aims to get the best of both worlds. It allows us to prototype and debug algorithms with the Python library clifford [1] which is designed to be easy to read and write and then to optimise our code both symbolically with GAALOP [2] and via the LLVM pipeline with Numba [3] resulting in highly performant code for very little additional effort.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Footnotes
1
Here, all geometric objects are described in the IPNS representation according to Table 1.
 
Literature
1.
go back to reference Arsenovic, A., Hadfield, H., Kern, R.: The Pygae Team. pygae/clifford: v1.0.1, October 2018 Arsenovic, A., Hadfield, H., Kern, R.: The Pygae Team. pygae/clifford: v1.0.1, October 2018
2.
go back to reference Schwinn, C.: Gaalop 2.0 - a geometric algebra algorithm compiler (2010) Schwinn, C.: Gaalop 2.0 - a geometric algebra algorithm compiler (2010)
3.
go back to reference Lam, S.K., Pitrou, A., Seibert, S.: Numba: a LLVM-based python JIT compiler. In: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC - LLVM 15, pp. 1–6. ACM Press (2015) Lam, S.K., Pitrou, A., Seibert, S.: Numba: a LLVM-based python JIT compiler. In: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC - LLVM 15, pp. 1–6. ACM Press (2015)
8.
go back to reference Breuils, S., Nozick, V., Fuchs, L.: Garamon: Geometric algebra library generator. In: AGACSE 2018 (2018) Breuils, S., Nozick, V., Fuchs, L.: Garamon: Geometric algebra library generator. In: AGACSE 2018 (2018)
9.
go back to reference Fontijne, D.: Gaigen 2: a geometric algebra implementation generator. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering - GPCE06, p. 141. ACM Press (2006) Fontijne, D.: Gaigen 2: a geometric algebra implementation generator. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering - GPCE06, p. 141. ACM Press (2006)
10.
go back to reference Hildenbrand, D., Fontijne, D., Wang, Y., Alexa, M., Dorst, L.: Competitive runtime performance for inverse kinematics algorithms using conformal geometric algebra. In: Eurographics Conference Vienna (2006) Hildenbrand, D., Fontijne, D., Wang, Y., Alexa, M., Dorst, L.: Competitive runtime performance for inverse kinematics algorithms using conformal geometric algebra. In: Eurographics Conference Vienna (2006)
11.
go back to reference Hildenbrand, D.: Geometric computing in computer graphics and robotics using conformal geometric algebra. Ph.D. thesis, TU Darmstadt, Darmstadt University of Technology (2006) Hildenbrand, D.: Geometric computing in computer graphics and robotics using conformal geometric algebra. Ph.D. thesis, TU Darmstadt, Darmstadt University of Technology (2006)
12.
go back to reference Woersdoerfer, F., Stock, F., Bayro-Corrochano, E., Hildenbrand, D.: Optimization and performance of a robotics grasping algorithm described in geometric algebra. In: Iberoamerican Congress on Pattern Recognition 2009, Guadalajara, Mexico (2009) Woersdoerfer, F., Stock, F., Bayro-Corrochano, E., Hildenbrand, D.: Optimization and performance of a robotics grasping algorithm described in geometric algebra. In: Iberoamerican Congress on Pattern Recognition 2009, Guadalajara, Mexico (2009)
14.
go back to reference Hildenbrand, D., Albert, J., Charrier, P., Steinmetz, C.: Geometric algebra computing for heterogeneous systems. Adv. Appl. Clifford Algebras J. (2016) Hildenbrand, D., Albert, J., Charrier, P., Steinmetz, C.: Geometric algebra computing for heterogeneous systems. Adv. Appl. Clifford Algebras J. (2016)
15.
go back to reference Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2006)MATH Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2006)MATH
16.
go back to reference Kennedy, K., Allen, J.R.: Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann Publishers Inc., San Francisco (2002) Kennedy, K., Allen, J.R.: Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann Publishers Inc., San Francisco (2002)
17.
go back to reference Bolz, C.F., Rigo, A.: How to not write virtual machines for dynamic languages. In: ESUG 2007 (2007) Bolz, C.F., Rigo, A.: How to not write virtual machines for dynamic languages. In: ESUG 2007 (2007)
18.
go back to reference Oliphant, T.E.: Guide to NumPy, 2nd edn. CreateSpace Independent Publishing Platform, Scotts Valley (2015) Oliphant, T.E.: Guide to NumPy, 2nd edn. CreateSpace Independent Publishing Platform, Scotts Valley (2015)
19.
go back to reference Jones, E., Oliphant, T., Peterson, P., et al.: SciPy: open source scientific tools for Python (2001) Jones, E., Oliphant, T., Peterson, P., et al.: SciPy: open source scientific tools for Python (2001)
20.
go back to reference Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: International Symposium on Code Generation and Optimization, CGO 2004, pp. 75–86. IEEE (2004) Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: International Symposium on Code Generation and Optimization, CGO 2004, pp. 75–86. IEEE (2004)
Metadata
Title
Gajit: Symbolic Optimisation and JIT Compilation of Geometric Algebra in Python with GAALOP and Numba
Authors
Hugo Hadfield
Dietmar Hildenbrand
Alex Arsenovic
Copyright Year
2019
DOI
https://doi.org/10.1007/978-3-030-22514-8_50

Premium Partner