You are previewing Geometric Algebra for Computer Science.
O'Reilly logo
Geometric Algebra for Computer Science

Book Description

Until recently, almost all of the interactions between objects in virtual 3D worlds have been based on calculations performed using linear algebra. Linear algebra relies heavily on coordinates, however, which can make many geometric programming tasks very specific and complex-often a lot of effort is required to bring about even modest performance enhancements. Although linear algebra is an efficient way to specify low-level computations, it is not a suitable high-level language for geometric programming.

Geometric Algebra for Computer Science presents a compelling alternative to the limitations of linear algebra. Geometric algebra, or GA, is a compact, time-effective, and performance-enhancing way to represent the geometry of 3D objects in computer programs. In this book you will find an introduction to GA that will give you a strong grasp of its relationship to linear algebra and its significance for your work. You will learn how to use GA to represent objects and perform geometric operations on them. And you will begin mastering proven techniques for making GA an integral part of your applications in a way that simplifies your code without slowing it down.



* The first book on Geometric Algebra for programmers in computer graphics and entertainment computing

* Written by leaders in the field providing essential information on this new technique for 3D graphics

* This full colour book includes a website with GAViewer, a program to experiment with GA

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright
  4. List of Figures
  5. List of Tables
  6. List of Programming Examples
  7. Preface
    1. Audience
    2. History
    3. Software
    4. Acknowledgements
  8. Table of Contents
  9. Chapter 1: Why geometric algebra?
    1. 1.1 An Example in Geometric Algebra
    2. 1.2 How It Works and How It’s Different
    3. 1.3 Programming Geometry
    4. 1.4 The Structure of This Book
    5. 1.5 The Structure of the Chapters
  10. Part I: Geometric algebra
    1. Chapter 2: Spanning oriented subspaces
      1. 2.1 Vector Spaces
      2. 2.2 Oriented Line Elements
      3. 2.3 Oriented Area Elements
      4. 2.4 Oriented Volume Elements
      5. 2.5 Quadvectors in 3-D are Zero
      6. 2.6 Scalars Interpreted Geometrically
      7. 2.7 Applications
      8. 2.8 Homogeneous Subspace Representation
      9. 2.9 The Graded Algebra of Subspaces
      10. 2.10 Summary of Outer Product Properties
      11. 2.11 Further Reading
      12. 2.12 Exercises
      13. 2.13 Programming Examples and Exercises
    2. Chapter 3: Metric products of subspaces
      1. 3.1 Sizing Up Subspaces
      2. 3.2 From Scalar Product to Contraction
      3. 3.3 Geometric Interpretation of the Contraction
      4. 3.4 The Other Contraction ⌊
      5. 3.5 Orthogonality and Duality
      6. 3.6 Orthogonal Projection of Subspaces
      7. 3.7 The 3-D Cross Product
      8. 3.8 Application: Reciprocal Frames
      9. 3.9 Further Reading
      10. 3.10 Exercises
      11. 3.11 Programming Examples and Exercises
    3. Chapter 4: Linear transformations of subspaces
      1. 4.1 Linear Transformations of Vectors
      2. 4.2 Outermorphisms: Linear Transformations of Blades
      3. 4.3 Linear Transformation of the Metric Products
      4. 4.4 Inverses of Outermorphisms
      5. 4.5 Matrix Representations
      6. 4.6 Summary
      7. 4.7 Suggestions For Further Reading
      8. 4.8 Structural Exercises
      9. 4.9 Programming Examples and Exercises
    4. Chapter 5: Intersection and union of subspaces
      1. 5.1 The Phenomenology of Intersection
      2. 5.2 Intersection Through Outer Factorization
      3. 5.3 Relationships Between Meet and Join
      4. 5.4 Using Meet and Join
      5. 5.5 Join and Meet are Mostly Linear
      6. 5.6 Quantitative Properties of the Meet
      7. 5.7 Linear Transformation of Meet and Join
      8. 5.8 Offset Subspaces
      9. 5.9 Further Reading
      10. 5.10 Exercises
      11. 5.11 Programming Examples and Exercises
    5. Chapter 6: The fundamental product of geometric algebra
      1. 6.1 The Geometric Product For Vectors
      2. 6.2 The Geometric Product of Multivectors
      3. 6.3 The Subspace Products Retrieved
      4. 6.4 Geometric Division
      5. 6.5 Further Reading
      6. 6.6 Exercises
      7. 6.7 Programming Examples and Exercises
    6. Chapter 7: Orthogonal transformations as versors
      1. 7.1 Reflections of Subspaces
      2. 7.2 Rotations of Subspaces
      3. 7.3 Composition of Rotations
      4. 7.4 The Exponential Representation of Rotors
      5. 7.5 Subspaces As Operators
      6. 7.6 Versors Generate Orthogonal Transformations
      7. 7.7 The Product Structure of Geometric Algebra
      8. 7.8 Further Reading
      9. 7.9 Exercises
      10. 7.10 Programming Examples and Exercises
    7. Chapter 8: Geometric differentiation
      1. 8.1 Geometrical Changes By Orthogonal Transformations
      2. 8.2 Transformational Changes
      3. 8.3 Parametric Differentiation
      4. 8.4 Scalar Differentiation
      5. 8.5 Directional Differentiation
      6. 8.6 Vector Differentiation
      7. 8.7 Multivector Differentiation
      8. 8.8 Further Reading
      9. 8.9 Exercises
  11. Part II: Models of geometries
    1. Chapter 9: Modeling geometries
    2. Chapter 10: The vector space model
      1. 10.1 The Natural Model For Directions
      2. 10.2 Angular Relationships
      3. 10.3 Computing With 3-D Rotors
      4. 10.4 Application: Estimation in the Vector Space Model
      5. 10.5 Convenient Abuse: Locations As Directions
      6. 10.6 Further Reading
      7. 10.7 Programming Examples and Exercises
    3. Chapter 11: The homogeneous model
      1. 11.1 Homogeneous Representation Space
      2. 11.2 All Points are Vectors
      3. 11.3 All Lines are 2-Blades
      4. 11.4 All Planes are 3-Blades
      5. 11.5 k-Flats as (k + 1)-Blades
      6. 11.6 Direct and Dual Representations of Flats
      7. 11.7 Incidence Relationships
      8. 11.8 Linear Transformations: Motions and More
      9. 11.9 Coordinate-Free Parameterized Constructions
      10. 11.10 Metric Products in the Homogeneous Model
      11. 11.11 Further Reading
      12. 11.12 Exercises
      13. 11.13 Programming Examples and Exercises
    4. Chapter 12: Applications of the homogeneous model
      1. 12.1 Homogeneous PlÜcker Coordinates in 3-D
      2. 12.2 Imaging By Multiple Cameras
      3. 12.3 Further Reading
      4. 12.4 Exercises
      5. 12.5 Programming Examples and Exercises
    5. Chapter 13: The conformal model
      1. 13.1 The Conformal Model
      2. 13.2 Euclidean Transformations As Versors
      3. 13.3 Flats and Directions
      4. 13.4 Application: General Planar Reflection
      5. 13.5 Rigid Body Motions
      6. 13.6 Application: Interpolation of Rigid Body Motions
      7. 13.7 Application: Differential Planar Reflections
      8. 13.8 Further Reading
      9. 13.9 Exercises
      10. 13.10 Programming Examples and Exercises
    6. Chapter 14: New primitives for euclidean geometry
      1. 4.1 Rounds
      2. 14.2 Tangents as Intersections of Touching Rounds
      3. 14.3 A Visual Explanation of Rounds as Blades
      4. 14.4 Application: Voronoi Diagrams
      5. 14.5 Application: Fitting a Sphere to Points
      6. 14.6 Application: Kinematics
      7. 14.7 Further Reading
      8. 14.8 Exercises
      9. 14.9 Programming Examples and Exercises
    7. Chapter 15: Constructions in euclidean geometry
      1. 15.1 Euclidean Incidence and Coincidence
      2. 15.2 Euclidean Nuggets
      3. 15.3 Euclidean Projections
      4. 15.4 Application: All Kinds of Vectors
      5. 15.5 Application: Analysis of a Voronoi Cell
      6. 15.6 Further Reading
      7. 15.7 Exercises
      8. 15.8 Programming Examples and Exercises
    8. Chapter 16: Conformal operators
      1. 16.1 Spherical Inversion
      2. 16.2 Applications of Inversion
      3. 16.3 Scaling
      4. 16.4 Transversions
      5. 16.5 Transformationsofthestandardblades
      6. 16.6 General Conformal Transformations
      7. 16.7 Non-Euclidean Geometries
      8. 16.8 Further Reading
      9. 16.9 Exercises
      10. 16.10 Programming Examples and Exercises
    9. Chapter 17: Operational models for geometries
      1. 17.1 Algebras For Geometries
  12. Part III: Implementing geometric algebra
    1. Chapter 18: Implementation issues
      1. 18.1 The Levels of Geometric Algebra Implementation
      2. 18.2 Who Should Read What
      3. 18.3 Alternative Implementation Approaches
      4. 18.4 Structural Exercises
    2. Chapter 19: Basis blades and operations
      1. 19.1 Representing Unit Basis Blades With Bitmaps
      2. 19.2 The Outer Product of Basis Blades
      3. 19.3 The Geometric Product of Basis Blades in An Orthogonal Metric
      4. 19.4 The Geometric Productofbasis Blades in Nonorthogonal Metrics
      5. 19.5 The Metric Products of Basis Blades
      6. 19.6 Commutator Product of Basis Blades
      7. 19.7 Grade-Dependent Signs On Basis Blades
    3. Chapter 20: The linear products and operations
      1. 20.1 A Linear Algebra Approach
      2. 20.2 The List of Basis Blades Approach
      3. 20.3 Structural Exercises
    4. Chapter 21: Fundamental algorithms for nonlinear products
      1. 21.1 Inverse of Versors (And Blades)
      2. 21.2 Inverse of Multivectors
      3. 21.3 Exponential, Sine, and Cosine of Multivectors
      4. 21.4 Logarithm of Versors
      5. 21.5 Multivector Classification
      6. 21.6 Blade Factorization
      7. 21.7 The Meet and Join of Blades
      8. 21.8 Structural Exercises
    5. Chapter 22: Specializing the structure for efficiency
      1. 22.1 Issues in Efficient Implementation
      2. 22.2 Generative Programming
      3. 22.3 Resolving the Issues
      4. 22.4 Implementation
      5. 22.5 Benchmarks
      6. 22.6 A Small Price to Pay
      7. 22.7 Exercises
    6. Chapter 23: Using the geometry in a ray-tracing application
      1. 23.1 Ray-Tracing Basics
      2. 23.2 The Ray-Tracing Algorithm
      3. 23.3 Representing Meshes
      4. 23.4 Modeling the Scene
      5. 23.5 Tracing the Rays
      6. 23.6 Shading
      7. 23.7 Evaluation
  13. Metrics and null vectors
    1. A.1 The Bilinear Form
    2. A.2 Diagonalization to Orthonormal Basis
    3. A.3 General Metrics
    4. A.4 Null Vectors and Null Blades
    5. A.5 Rotors in General Metrics
  14. Contractions and other inner products
    1. B.1 Other Inner Products
    2. B.2 Equivalence of the Implicit and Explicit Contraction Definitions
    3. B.3 Proof of the Second Duality
    4. B.4 Projection and the Norm of the Contraction
  15. Subspace products retrieved
    1. C.1 Outer Product From Geometric Product
    2. C.2 Contractions From Geometric Product
    3. C.3 Proof of the Grade Approach
  16. Common equations
  17. Bibliography
  18. Index
  19. Instructions for Online Access