Skip to main content
Log in

TbGAL: A Tensor-Based Library for Geometric Algebra

  • Published:
Advances in Applied Clifford Algebras Aims and scope Submit manuscript

Abstract

Geometric algebra is a powerful mathematical framework that allows us to use geometric entities (encoded by blades) and orthogonal transformations (encoded by versors) as primitives and operate on them directly. In this work, we present a high-level C++ library for geometric algebra. By manipulating blades and versors decomposed as vectors under a tensor structure, our library achieves high performance even in high-dimensional spaces (\(\bigwedge \mathbb {R}^{n}\) with \(n > 256\)) assuming (pqr) metric signatures with \(r = 0\). Additionally, to keep the simplicity of use of our library, the implementation is ready to be used both as a C++ pure library and as a back-end to a Python environment. Such flexibility allows easy manipulation accordingly to the user’s experience, without impact on the performance.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. Source Code: https://github.com/Prograf-UFF/TbGAL

References

  1. Arsenovic, A., Hadfield, H., Antonello, J., Kern, R., Boyle, Mike: Numerical geometric algebra module for Python. https://github.com/pygae/clifford, (2018)

  2. Breuils, S., Nozick, V., Fuchs, L.: Garamon: a geometric algebra library generator. Adv. Appl. Clifford Algebras 29(4), 69 (2019)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bromborsky, A.: Symbolic geometric algebra/calculus package for SymPy. https://github.com/brombo/galgebra, (2015)

  4. Camargo, V.S., Castelani, E.V., Fernandes, L.A.F., Fidalgo, F.: Geometric algebra to describe the exact discretizable molecular distance geometry problem for an arbitrary dimension. Adv. Appl. Clifford Algebras 29(4), 75 (2019)

    Article  MathSciNet  MATH  Google Scholar 

  5. Castelani, E.V.: Library for geometric algebra. https://github.com/evcastelani/Liga.jl, (2017)

  6. Charrier, P., Klimek, M., Steinmetz, C., Hildenbrand, D.: Geometric algebra enhanced precompiler for C++, OpenCL and Mathematica’s OpenCLLink. Adv. Appl. Clifford Algebras 24(2), 613–630 (2014)

    Article  MATH  Google Scholar 

  7. Colapinto, P.: Versor: spatial computing with conformal geometric algebra. Master’s thesis, University of California at Santa Barbara, (2011)

  8. De Keninck, S.: Javascript geometric algebra generator for Javascript, C++, C#, Rust, Python

  9. Dijkman, D.H.F.: Efficient implementation of geometric algebra. Ph.D. thesis, Universiteit van Amsterdam, (2007)

  10. Doran, C., Lasenby, A., Lasenby, J.: Geometric Algebra for Physicists. Cambridge University Press, Cambridge (2003)

    Book  MATH  Google Scholar 

  11. Dorst, L., Fontijne, D., Mann, S.: Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry. Morgan Kaufmann Publishers Inc, Burlington (2009)

    Google Scholar 

  12. Fernandes, L.A.F.: GATL: geometric algebra template library. https://github.com/laffernandes/gatl, (2019)

  13. Fernandes, L.A.F., Lavor, C., Oliveira, M.M.: Álgebra geométrica e aplicações, Notas em Matemática Aplicada, vol. 85, SBMAC, 2017, (In Portuguese) (2017)

  14. Fontijne, D.: Implementation of Clifford algebra for blades and versors in \(O(n^{3})\) time. In: Talk at International Conference on Clifford Algebra, May 19–29, (2005)

  15. 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 (2006)

  16. Golub, G.H., Van Loan, C.F.: Matrix Computations, 3rd edn. Johns Hopkins, Baltimore (1996)

    MATH  Google Scholar 

  17. Gürlebeck, K., Habetha, K., Sprößig, W.: Holomorphic Functions in the Plane and n-Dimensional Space. Springer Science & Business Media, New York (2007)

    MATH  Google Scholar 

  18. Hadfield, H., Hildenbrand, D., Arsenovic, A.: Gajit: symbolic optimisation and JIT compilation of geometric algebra in Python with GAALOP and Numba, Advances in Computer Graphics – Computer Graphics International Conference (CGI) (M. Gavrilova, J. Chang, N. Thalmann, E. Hitzer, and H. Ishikawa, eds.), Springer, (2019)

  19. Hestenes, D.: New Foundations for Classical Mechanics, vol. 15. Springer Science & Business Media, New York (2012)

    MATH  Google Scholar 

  20. Hestenes, D., Lasenby, A.N.: Space-Time Algebra. Springer, New York (1966)

    Google Scholar 

  21. Hildenbrand, D., Pitt, J., Koch, A.: Gaalop–high performance parallel computing based on conformal geometric algebra. In: Bayro-Corrochano, E., Scheuermann, G. (eds.) Geometric Algebra Computing, pp. 477–494. Springer, London (2010)

    Chapter  MATH  Google Scholar 

  22. Hitzer, E., Nitta, T., Kuroe, Y.: Applications of clifford’s geometric algebra. Adv. Appl. Clifford Algebras 23(2), 377–404 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  23. Hudak, P.: Conception, evolution, and application of functional programming languages. ACM Comput. Surv. 21(3), 383–385 (1989)

    Article  Google Scholar 

  24. Leopardi, P.C.: GluCat: Generic library of universal Clifford algebra templates. http://glucat.sourceforge.net/, (2007)

  25. Liberti, L., Lavor, C., Maculan, N., Mucherino, A.: Euclidean distance geometry and applications. SIAM Rev. 56(1), 3–69 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  26. Nitta, T.: Complex-Valued Neural Networks: Utilizing High-Dimensional Parameters. IGI Global, Hershey (2009)

    Book  Google Scholar 

  27. Perwass, C., Edelsbrunner, H., Kobbelt, L., Polthier, K.: Geometric Algebra with Applications in Engineering. Springer, Berlin (2009)

    Google Scholar 

  28. Perwass, C., Gebken, C., Grest, D.: CluViz: interactive visualization. http://cluviz.de, (2004)

  29. Pythonic Geometric Algebra Enthusiasts.: Symbolic geometric algebra/calculus package for SymPy. https://github.com/pygae/galgebra, (2017)

  30. Reed, M.: Leibniz–Grassmann–Clifford–Hestenes differential geometric algebra multivector simplicial-complex. https://github.com/chakravala/Grassmann.jl, (2017)

  31. Seybold, F.: Gaalet: Geometric algebra algorithms expression templates. https://sourceforge.net/projects/gaalet/, (2010)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eduardo Vera Sousa.

Additional information

Communicated by Leo Dorst

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This work was sponsored by CNPq-Brazil (Grant 311.037/2017-8) and FAPERJ (Grant E-26/202.718/2018).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Sousa, E.V., Fernandes, L.A.F. TbGAL: A Tensor-Based Library for Geometric Algebra. Adv. Appl. Clifford Algebras 30, 27 (2020). https://doi.org/10.1007/s00006-020-1053-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s00006-020-1053-1

Mathematics Subject Classification

Keywords

Navigation