# Foundations of Geometric Algebra Computing (Geometry and Computing)

Language: English

Pages: 196

ISBN: 3642317936

Format: PDF / Kindle (mobi) / ePub

The author defines “Geometric Algebra Computing” as the geometrically intuitive development of algorithms using geometric algebra with a focus on their efficient implementation, and the goal of this book is to lay the foundations for the widespread use of geometric algebra as a powerful, intuitive mathematical language for engineering applications in academia and industry. The related technology is driven by the invention of conformal geometric algebra as a 5D extension of the 4D projective geometric algebra and by the recent progress in parallel processing, and with the specific conformal geometric algebra there is a growing community in recent years applying geometric algebra to applications in computer vision, computer graphics, and robotics.

This book is organized into three parts: in Part I the author focuses on the mathematical foundations; in Part II he explains the interactive handling of geometric algebra; and in Part III he deals with computing technology for high-performance implementations based on geometric algebra as a domain-specific language in standard programming languages such as C++ and OpenCL. The book is written in a tutorial style and readers should gain experience with the associated freely available software packages and applications.

The book is suitable for students, engineers, and researchers in computer science, computational engineering, and mathematics.

Digital Memory and the Archive (Electronic Mediations)

A Guide to Conducting Online Research

Professional SQL Server 2012 Internals and Troubleshooting

Mathematical Introduction Part I of this book provides a theoretical introduction to Geometric Algebra. We focus on 5D Conformal Geometric Algebra because of its intuitive handling of geometric entities, geometric operations, transformations, and motions. We show how a lot of other mathematical systems can be identified within this algebra, and present the fitting of points with the help of spheres and/or planes as an important application. If you are more interested in a quick interactive,

6.4.3 Dual Vectors in CGA In Sect. 6.4.2, we saw circles and lines represented as the duals of trivectors based on the outer product of three points. In a similar way we are able to define spheres and planes as the dual of the outer product of four points (in the IPNS representation) or as the outer product of four points (in the OPNS representation). The dual of a vector in CGA is a four-vector (or quadvector). In the following CLUScript DualSphereN3.clu (Fig. 6.16) a sphere generated by four

five-dimensional representation of a three-dimensional point to the variable a according to Table 3.2. With the help of axis = *(a ^ b ^ einf); a bivector representing a line axi s is computed. According to Table 3.2 the dual representation of a line is the outer product of two points and e1 , the point at infinity. The resulting bivector, after dualization, is normalized with the help of the abs function, and visualized and printed. Fig. 6.24 Visualization of a CLUScript describing motion 100

d3 have the same sign. Note that algorithms similar to this one occur in the field of ray tracers. A recent work based on CGA is [18]; it shows very promising results. Chapter 12 The Gaalop Precompiler for GPUs Thanks to powerful GPGPU techniques (see for instance [45]), one can expect impressive results using the powerful language of Geometric Algebra. In this chapter, we present the basics of Gaalop GPC for GPUs, a precompiler for parallel programming of heterogeneous systems using OpenCL

f l o a t e p s i l o n , c o n s t f l o a t sigma , const unsigned i n t atom mol ind1 , const unsigned i n t atom index2 block , c o n s t u n s i g n e d i n t numMolecules , c o n s t u n s i g n e d i n t numAtoms , const unsigned i n t numAtomPositions ) f i f ( a t o m i n d e x 2 b l o c k + g e t l o c a l i d ( 0 ) < numAtoms ) f const unsigned i n t atom mol ind2 = array atom mol ind [ atom index2 block + get local id (0)]; array atom mol ind2 block [ get loca l id (0)] = atom mol