Object-Oriented Implementations of Clifford Algebras in C++: A Prototype
This paper describes an evolving library of data types and algorithms for numerical Clifford algebra computations. C++ classes for representing elements of a Clifford algebra Cℓp,q are presented. Examples illustrating use of the library are included. These implementations will form the computation engine of a new interactive program, which is also under development. The library illustrates how “high level” mathematical descriptions can be implemented, elegantly and efficiently, in a “low level” programming language. This is achieved by using the object-oriented features supported by C++ (data abstraction, operator overloading and many others) At the time of writing, fundamental operations with elements of a Clifford algebra Cℓp,q can be performed. Routines for evaluating transcendental functions of Clifford elements, via matrix functions, are evolving.
Key wordsClifford algebras object-oriented programming C++
Unable to display preview. Download preview PDF.
- R. Lafore: 1991, Object-oriented Programming in Turbo C++. Waite Group Press.Google Scholar
- P. Lounesto, R. Mikkola, V. Vierros: 1987, CLICAL User Manual Research report A248, Institute of Mathematics, Helsinki University of Technology.Google Scholar
- P. Lounesto: 1992, ‘Clifford algebra calculations with a microcomputer’. In the book: A. Micali et al, Clifford Algebras and their Applications in Mathematical Physics. Kluwer Academic Publishers, pp. 39–55.Google Scholar
- K. Mehlhorn and S. Naher: 1994, LED A—A Library of Efficient Data Types and Algorithms. Max-Planck-Institut für Informatik.Google Scholar
- S. Meyers: 1992, Effective C++. Addison-Wesley.Google Scholar
- S. Näher: 1994, LED A User Manual, Version 3.0. Max-Planck Institut fur Informatik.Google Scholar
- I. Porteous: 1969, Topological Geometry. Van Nostrand Reinhold.Google Scholar
- I. Porteous: 1981, Topological Geometry. Second Edition. Van Nostrand Reinhold.Google Scholar
- M. Riesz: 1958, Clifford Numbers and Spinors. Maryland 1958, University of Maryland, The Institute for Fluid Dynamics and Applied Mathematics, Lecture Series No. 38; reproduced in E. Folke Bolinder, P. Lounesto (eds.), Clifford Numbers and Spinors. Kluwer Academic Publishers.Google Scholar
- R. Sedgewick: 1992, Algorithms in C++. Addison-Wesley.Google Scholar
- B. Stroustrup: 1991, The C++ Programming Language. 2nd edition. Addison-Wesley.Google Scholar
- V. Vierros: 1987, title in Finnish: Cliffordin algebroilla laskeva ohjelma mikrotietokoneelle. Title in English: A program for calculations in Clifford algebras with a microcomputer. “Diplomityo” (M.Sc. thesis), Helsinki University of Technology.Google Scholar