×

TbGAL: a tensor-based library for geometric algebra. (English) Zbl 1433.15004

Summary: 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 \((p, q, r)\) 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.

MSC:

15-04 Software, source code, etc. for problems pertaining to linear algebra
15A66 Clifford algebras, spinors
68W30 Symbolic computation and algebraic computation
PDFBibTeX XMLCite
Full Text: DOI

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) · Zbl 1422.68329 · doi:10.1007/s00006-019-0987-7
[3] Bromborsky, A.: Symbolic geometric algebra/calculus package for SymPy. https://github.com/brombo/galgebra, (2015)
[4] Camargo, VS; Castelani, EV; Fernandes, LAF; 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) · Zbl 1430.68361 · doi:10.1007/s00006-019-0995-7
[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) · Zbl 1299.15001 · doi:10.1007/s00006-014-0443-7
[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 (2003), Cambridge: Cambridge University Press, Cambridge · Zbl 1078.53001
[11] Dorst, L.; Fontijne, D.; Mann, S., Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry (2009), Burlington: Morgan Kaufmann Publishers Inc, Burlington
[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) · Zbl 1405.51001
[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, GH; Van Loan, CF, Matrix Computations (1996), Baltimore: Johns Hopkins, Baltimore · Zbl 0865.65009
[17] Gürlebeck, K.; Habetha, K.; Sprößig, W., Holomorphic Functions in the Plane and n-Dimensional Space (2007), New York: Springer Science & Business Media, New York
[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 (2012), New York: Springer Science & Business Media, New York
[20] Hestenes, D.; Lasenby, AN, Space-Time Algebra (1966), New York: Springer, New York · Zbl 0183.28901
[21] Hildenbrand, D.; Pitt, J.; Koch, A.; Bayro-Corrochano, E.; Scheuermann, G., Gaalop-high performance parallel computing based on conformal geometric algebra, Geometric Algebra Computing, 477-494 (2010), London: Springer, London · Zbl 1214.68434
[22] Hitzer, E.; Nitta, T.; Kuroe, Y., Applications of clifford’s geometric algebra, Adv. Appl. Clifford Algebras, 23, 2, 377-404 (2013) · Zbl 1269.15022 · doi:10.1007/s00006-013-0378-4
[23] Hudak, P., Conception, evolution, and application of functional programming languages, ACM Comput. Surv., 21, 3, 383-385 (1989) · doi:10.1145/72551.72554
[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) · Zbl 1292.51010 · doi:10.1137/120875909
[26] Nitta, T., Complex-Valued Neural Networks: Utilizing High-Dimensional Parameters (2009), Hershey: IGI Global, Hershey
[27] Perwass, C.; Edelsbrunner, H.; Kobbelt, L.; Polthier, K., Geometric Algebra with Applications in Engineering (2009), Berlin: Springer, Berlin · Zbl 1179.15025
[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)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.