A Survey of Geometric Algebra and Geometric Calculus Alan Macdonald Luther College, Decorah, IA 52101 USA macdonal@luther.edu http://faculty.luther.edu/~macdonal/ Invited paper for the proceedings of the conference Applied Geometric Algebra in Computer Science and Engineering, Barcelona, Spain, July 29-31, 2015. Adv. Appl. Cliff. Alg. 27, 853891 (2017). March 21, 2018 This is an updated version of the published paper. (The current version is always available at my web page.) Abstract This paper is an introduction to geometric algebra and geometric calculus, presented in the simplest way I could manage, without worrying too much about completeness or rigor. An understanding of linear algebra and vector calculus is presumed. This should be sufficient to read most of the paper. "The principal argument for the adoption of geometric algebra is that it provides a single, simple mathematical framework which eliminates the plethora of diverse mathematical descriptions and techniques it would otherwise be necessary to learn." [15] 1 Foundations 1.1 Introduction Geometric algebra and its extension to geometric calculus unify, simplify, and generalize many areas of mathematics that involve geometric ideas. They also provide a unified mathematical language for physics, engineering, and the geometrical aspects of computer science (e.g., graphics, robotics, computer vision). My purpose here is to demonstrate some of the scope and power of geometric algebra and geometric calculus. I will illustrate this for linear algebra, vector calculus, real analysis, complex analysis, and several geometries: euclidean, noneuclidean, projective, and conformal. I will also outline several applications. Geometric algebra is nothing less than a new approach to geometry. Geometric objects (points, lines, planes, circles, ... ) are represented by members of an algebra, a geometric algebra, rather than by equations relating coordinates. Geometric operations on the objects (rotate, translate, intersect, project, construct the circle through three points, ... ) are then represented by the algebraic operations of geometric algebra, rather than by manipulating equations. Geometric algebra is coordinate-free: coordinates are needed only when specific objects or operations are under consideration. All this has significant advantages over traditional approaches such as synthetic and analytic geometry and vector, tensor, exterior, and spinor1 algebras and calculus. There has been much progress in formulating efficient geometric algebra algorithms [10]. At first you will likely find the novelty and scope of the mathematics presented here overwhelming. This is to be expected: it takes years of serious study to understand the standard approaches to the mathematics discussed here. But after some study I hope that you will find, with me, great unity, simplicity, and elegance in geometric algebra. Readers who want to know more can consult the last section of this paper, Further Study. It includes a listing of many papers available on the web. The American physicist and mathematician David Hestenes initiated the modern development of geometric algebra with the publication of Space-Time Algebra in 1966 [6]. He built on the work of Hamilton, Grassmann, and Clifford a century or so earlier. After a slow start, geometric algebra has today attracted many workers in many disciplines – though not as many as it should have. 1For us, spinors are the members of the geometric algebra of even grade. See Section 1.4.2. 2 1.2 The Geometric Algebra The most popular algebraic structure today for Euclidean n-space is the inner product space Rn. This section presents a powerful extension of this structure, the geometric algebra Gn. In subsequent sections, we will explore the algebra and its applications. 1.2.1. The geometric algebra Gn. The geometric algebra Gn is an extension of the inner product space Rn, with more objects and operations. First, Gn is an associative algebra with a 1. That is, it is a vector space with a product satisfying properties G1-G4 for all scalars a and A,B,C ∈ Gn: G1. A(B + C) = AB +AC, (B + C)A = BA+ CA. G2. (aA)B = A(aB) = a(AB). G3. (AB)C = A(BC). G4. 1A = A1 = A. The product is called the geometric product. It is not commutative. Members of Gn are called multivectors. This allows us to reserve the term "vector" for vectors in Rn. (They are also multivectors.) This is a convenient terminology. Vectors are denoted in lower case bold. We list two more properties. G5. The geometric product of Gn is linked to the algebraic structure of Rn by uu = u * u = |u|2 for all u ∈ Rn. (1.1) This shows that nonzero vectors have an inverse in Gn: u−1 = u/|u|2. G6. Every orthonormal basis for Rn determines a canonical basis (defined below) for the vector space Gn. That's it! That's the geometric algebra. We have not proved that the mathematical structure just described exists. For that, see [14]. Before proceeding, we need Eq. (1.2) below. In the next equation, Step (1) is a polarization identity. Verify it by multiplying out the inner product on the right side. Step (2) follows from Eq. (1.1). Verify Step (3) by multiplying out the geometric product on the left side. u * v 1= 12 ( (u + v) * (u + v)− u * u− v * v ) 2 = 12 ( (u + v)2 − u2 − v2 ) 3 = 12 (uv + vu) . If u and v are orthogonal, then this gives vu = −uv. (u,v orthogonal) (1.2) Example: (1 + e1e2)(e1 − 2e2) = −e1 − 3e2. If u and v are orthogonal and nonzero, then from Eq. (1.2), (uv)2 = uvuv = −uuvv = −|u|2|v|2 < 0. Therefore uv is not a scalar or a vector. It is something new. See Section 1.3. 3 1.2.2. Canonical basis. Let {e1, e2, e3, e4} be an orthonormal basis for R4. This example of a canonical basis for the vector space G4 suffices to understand the concept: 1 basis for 0-vectors (scalars) e1 e2 e3 e4 basis for 1-vectors (vectors) e1e2 e1e3 e1e4 e2e3 e2e4 e3e4 basis for 2-vectors (bivectors) e1e2e3 e1e2e4 e1e3e4 e2e3e4 basis for 3-vectors (trivectors) e1e2e3e4 basis for 4-vectors. Table 1: A canonical basis for G4. The subscripts on the products of e's are increasing from left to right, and all such products are in the basis. From Eq. (1.2), rearranging the order of the e's in a member of the basis at most changes its sign. Thus the original product and its rearrangement are linearly dependent. We cannot use both in a basis. The canonical basis uses the arrangement with the subscripts increasing from left to right. Since vectors in Rn are in Gn and since Gn is closed under the geometric product, every linear combination of geometric products of vectors from Rn is in Gn. A canonical basis shows that all multivectors are of this form. The multivectors in a given row of Table 1 are products of k different e's for some fixed k. They form a basis for the subspace of k-vectors. These subspaces are independent of any particular canonical basis. The (one and only) zero is a k-vector for all k. This is necessary if k-vectors are to form a subspace of Gn. We might try to form a 5-vector in G4, e.g., e1e2e3e4e2. But by the product rules, Eqs. (1.1) and (1.2), this is equal to e1e3e4. There are no 5-vectors in G4. More generally, there are no m-vectors in Gn with m > n. Each member of a canonical basis contains a given e or it does not. Thus Gn has dimension 2n. How Geometric Algebra Works Geometric algebra represents geometric objects in Rn with certain multivectors in Gn called blades. Geometric algebra represents geometric operations with algebraic operations on blades. Coordinates are not used in these representations. Geometric objects include points, lines, planes, and, in the conformal model (Section 4.3), circles and spheres. Geometric operations include rotations, projections, constructions of lines between two points, constructions of circles through three points, determining the volume of parallelepipeds, and determining the angle between subspaces. Abbreviate "vector algebra" to VA and "geometric algebra" to GA. Let's see what we can do with GA! 4 1.3 The Inner and Outer Products We investigate the geometric product of two given vectors u and v in Rn. Let {e1, e2} be an orthonormal basis for a plane containing the vectors. Let u = a e1 + b e2 and v = c e1 + d e2 . Then from the product rules, Eqs. (1.1) and (1.2), uv = (ac+ bd) + (ad− bc) e1e2. (1.3) 1.3.1. The inner product. The first term on the right side of Eq. (1.3), ac+ bd, is the usual inner product of u and v: u * v = |u| |v| cos θ . Figure 1: The outer product u ∧ v . 1.3.2. The outer product. The second term on the right side is the outer product of u and v. This bivector is denoted u∧v. Just as u represents an oriented length, u ∧ v represents an oriented area. For the factor ad− bc is the signed area of the parallelogram with sides u and v: |u||v| sin θ. See Figure 1. And i ≡ e1e2 specifies the plane in which the area resides. Thus u ∧ v = (ad− bc)e1e2 = |u||v| sin θ i . (1.4) (If you want to know why e1e2 is denoted i, square it. We will have much more to say about this.) The inner product u*v = |u| |v| cos θ is intrinsic to the vectors, not depending on the basis {e1, e2}. So too with the outer product. For |u||v| sin θ is intrinsic. And if we rotate to another basis ( e′1 e′2 ) = ( cosα sinα − sinα cosα ) ( e1e2 ), then i ′ = e′1e ′ 2 = i, as you can verify. I will use a ♦ to set off comments about GA from the mathematics of GA. The comments will often compare GA to VA or other formalisms. ♦ In 3D VA, the oriented area of the bivector u ∧ v is represented by the cross product vector u × v. It is more natural to represent areas by areas, |u ∧ v|, rather than lengths, |u × v|. Moreover, VA does not generalize × to higher dimensions: there is no unique direction orthogonal to the plane of u and v. In addition, we shall see that even in 3D, ∧ is superior to × in several respects. Thus the cross product plays a limited role in GA. 1.3.3. The fundamental identity. Rewrite Eq. (1.3) in terms of the inner and outer products to obtain the fundamental identity uv = u * v + u ∧ v. (1.5) Forget the coordinates of u and v which led to this equation. Remember that the geometric product of two vectors is the sum of a scalar and a bivector, both of which have a simple geometric interpretation. ♦ There is no hint in VA that * and × (reformulated to ∧) are parts of a whole: the geometric product, an associative product in which nonzero vectors have an inverse.2 2 Not every nonzero multivector has an inverse. Example: Let |u| = 1. If 1 − u had an inverse, then right multiply (1 + u)(1 − u) = 0 by the inverse to obtain 1 + u = 0, a contradiction. 5 1.3.4. Miscellaneous facts. We will use them without comment. • u ∧ v , unlike uv, is always a bivector. • uv is a bivector ⇔ u * v = 0 ⇔ u ⊥ v ⇔ uv = u ∧ v ⇔ uv = −vu . In particular, for i 6= j, ei ej = ei ∧ ej . • uv is a scalar ⇔ u ∧ v = 0 ⇔ u ‖ v ⇔ uv = u * v ⇔ uv = vu . • v ∧ u = −(u ∧ v). • u *v = 12 (uv+vu) and u∧v = 1 2 (uv−vu) ; the inner and outer products are the symmetric and antisymmetric parts of the geometric product. 1.4 Represent Subspaces 1.4.1. The pseudoscalar. The (unit) pseudoscalar I = e1 e2 * * * en is an important member of Gn. (We use lower case in 2D: i = e1e2 , as in Section 1.3.2.) A canonical basis shows that n-vectors form a 1-dimensional subspace of Gn, so every n-vector is a scalar multiple of I. If I′ = e′1 e′2 * * * e′n for another orthonormal basis, then I′ is a unit n-vector. Thus I′ = ±I. The bases have the same orientation if I′ = I and the opposite orientation if I′ = −I. Note that I−1 = en * * * e2e1. Starting with I = e1 e2 * * * en, move en to the left with n − 1 adjacent swaps, then move en−1 next to it with n − 2 adjacent swaps, and so on until I−1 is obtained. This requires (n − 1)n/2 swaps in all. Thus from Eq. (1.2), I−1 = (−1)(n−1)n/2I. In particular, I−1 = ±I. 1.4.2. Blades. A blade is a product of nonzero orthogonal vectors: B = b1b2 * * *bk. Call B a k-blade, or a blade of grade k. Nonzero scalars are 0– blades. We use bold to designate blades, with lower case reserved for vectors. (Exception: i.) We use upper case italic (A,B,C, . . . ) to denote general multivectors. Every blade B = b1b2 * * *bk in Gn represents a subspace of Rn: the subspace with basis {b1,b2, . . . ,bk}. All blades representing a given subspace are scalar multiples of each other. For they are the pseudoscalars of the geometric algebra of the subspace. A positive multiple of a blade represents the same subspace as the blade. A negative multiple represents the same subspace but with the opposite orientation. For example, 6e1e3 and −e1e3 = e3e1 represent opposite orientations of a 2D subspace. We shorten "the subspace represented by blade B" to "the subspace B", or simply "B". Set theoretic relationships between blades, e.g., "A ⊆ B", then refer to the subspaces they represent. 6 1.5 Operations 1.5.1. The norm. Expand the multivector A with respect to the canonical basis {eJ}: A = ∑ J aJeJ . Then the norm of A is defined by |A|2 = ∑ J a 2 J . The norm is independent of the canonical basis used. 1.5.2. The dual. The dual of a multivector A is3 A∗ = AI−1. (1.6) 1.5.3. Orthogonal complement. If A is a j-blade, then A∗ is an (n−j)blade representing the orthogonal complement of A. Proof. Except for an irrelevant overall scalar normalization constant, A = a1a2 . . .aj , the product of members of an orthonormal basis for A. Extend to an orthonormal basis {a1, a2, . . . , aj , aj+1, . . . , an} of Rn. Then A∗ = ±AI = ±(a1a2 * * *aj) (a1a2 * * *an) = ±aj+1 * * *an, which represents the orthogonal complement of A. ♦ The ∗ algebraic operator of GA is the ⊥ operator of VA. VA does not represent subspaces, much less ⊥ as an algebraic operation on them. 1.5.4. (n−1)-vectors in Gn are blades. In particular, all bivectors in G3 are blades. Proof. From a canonical basis, an (n−1)-vector P is a sum of (n−1)-blades. From Section 1.5.3, P ∗ is a sum of vectors, which is a vector, which is a 1-blade. From Section 1.5.3 again, P ∗∗ = ±P is an (n−1)-blade. In R3, (u ∧ v)∗ = u × v: both are orthogonal to the oriented plane u ∧ v and both have length |u||v| sin θ (Eq. (1.4)). 1.5.5. Extend inner and outer product operations. Let 〈C 〉j denote the j vector part of the multivector C . For example, from the fundamental identity ab = a * b + a ∧ b, 〈ab 〉0 = a * b, 〈ab 〉1 = 0, and 〈ab 〉2 = a ∧ b. Inner product. Let A be a j -vector and B a k -vector. Define:4 A * B = 〈AB 〉k−j . (1.7) (Thus if j > k, then A * B = 0 .) Examples: (e1e2) * (e1e2e3) = 〈 e1e2e1e2e3 〉3−2 = −e3 , (e1) * (e2e3) = 〈 e1e2e3 〉2−1 = 0 . (1.8) 3Some authors use AI or IA. For a given A, all differ by at most a sign. 4 Warning: |k − j| is used more often than k − j to define the inner product, Eq. (1.7) [1]. Dorst has argued the advantages of the inner product as defined here, see [3]. It is often called the left contraction, and usually denoted "c". I use "*" because it is familiar and "c" is ugly. 7 Outer product. Define: A ∧B = 〈AB 〉j+k . (1.9) (Thus if j + k > n, then A ∧B = 0.) Examples: (e1e2) ∧ (e3) = 〈 e1e2e3 〉2+1 = e1e2e3, (e1e2) ∧ (e2e3) = 〈 e1e2e2e3 〉2+2 = 0 . (1.10) Extend the inner and outer products to multivectors of mixed grades by linearity. Here are some properties of the geometric, inner, and outer products, without proofs. 1.5.6. Grades in AB. If A is a j-blade and B a k-blade, then the possible grades in AB are |k−j|, |k−j|+2, . . . , k+j−2, k+j. 1.5.7. A * B properties. a. If A * B 6= 0, then A * B is a blade with A * B ⊆ B. b. If A ⊆ B, then A * B = AB. c. A * (B * C) = (A ∧B) * C. d. A * A = A2 = ±|A|2. 1.5.8. A ∧B properties. a. If A ∩B = {0}, then A ∧B represents span(A,B). If A ∩B 6= {0}, then A ∧B = 0. In particular, A ∧B is a blade (or 0). b. If A is a j-vector and B a k-vector, then B ∧A = (−1)jk(A ∧B). Part (a) gives a test: A ∩B = {0} ⇔ A ∧B 6= 0. Part (b) generalizes b ∧ a = −(a ∧ b). c. The outer product is associative. Important! ♦ The cross product is not associative. 1.5.9. Duality. The inner and outer products are dual: (A * B)∗ = A ∧B∗, (A ∧B)∗ = A * B∗ . (1.11) These are important identities. Using 1.5.3 we prove the second equality for a j-blade A and a k-blade B: A * B∗ = 〈A(BI−1) 〉(n−k)−j = 〈 (AB)I−1 〉n−(j+k) = 〈AB 〉j+k I−1 = (A ∧B)∗. This extends to arbitrary multivectors A and B by linearity. 8 Figure 2: a = a‖ + a⊥. 1.5.10. Lemma. Let a be a vector and B a blade. Decompose a with respect to B: a = a‖ + a⊥, where a‖ ∈ B , a⊥ ⊥ B . See Figure 2. Suppose that B = b1b2 * * *bk is a k-blade. Then: a. If a‖ ∈ B, then a‖ * B = a‖B and a‖ ∧B = 0. Also, a‖ * B is a (k−1)-blade in B. b. If a⊥ ⊥ B, then a⊥ ∧B = a⊥B and a⊥ * B = 0. Also, a⊥ ∧B is a (k+1)-blade representing span(a⊥,B). The proofs follow from Sections 1.5.7 and 1.5.8. 1.5.11. Extended fundamental identity. Let B be a k-blade. Then for every vector a, aB = a * B + a ∧B. (1.12) In this equation, a * B is a (k −1) blade in B (or 0), a ∧B is a (k + 1) blade representing span(a,B) (or 0). Proof. Using the lemma four times in Step (3), aB = (a‖ + a⊥)B = a‖B + a⊥B = a‖ * B + a⊥ * B + a⊥ ∧B + a‖ ∧B 3 = (a‖ + a⊥) * B + (a⊥ + a‖) ∧B = a * B + a ∧B. Apply the lemma to a * B = a‖ * B and a ∧B = a⊥ ∧B to finish the proof. In general, AB 6= A * B + A ∧B . Example: A = e1e2 and B = e2e3 . 1.5.12. Projections and rejections. Let a be a vector and B a blade. Decompose a with respect to B: a = a‖ + a⊥. (Recall Figure 2.) Then a‖ = ( a * B)B−1, (1.13) a⊥ = ( a ∧B)B−1. (1.14) Proof. From the lemma, a⊥B = a⊥ ∧ B + a‖ ∧ B = a ∧ B. This gives Eq. (1.14). ♦ VA has no analogs of these simple formulas, except when B = b, a vector, in the projection formula Eq. (1.13). 9 1.5.13. Subspace membership test. For every vector a and blade B, a ∈ B ⇔ a ∧B = 0, (1.15) a ∈ B ⇔ a * B∗ = 0. (1.16) Proof. From a = a‖ + a⊥, a ∈ B ⇔ a⊥ = 0. This, with Eq. (1.14), gives Eq. (1.15). From (a *B)∗ = a∧B∗, Eq. (1.11) applied to B∗, a *B∗ = 0 ⇔ a∧B = 0. This, with Eq. (1.15), gives Eq. (1.16). We say that B is a direct representation of the subspace and B∗ is a dual representation. Both representations are useful. The distance from the endpoint of a to B is |a⊥| = |(a ∧B)B−1| . If B is a hyperplane, e.g., a plane in R3, then it divides Rn into two sides. Then a∧B is an n-vector. The scalar (a ∧B)∗/ |B| is a signed distance from the endpoint of a to B. 1.5.14. Reflections. Let MB(a) be the reflection of a vector a through a blade B. ("M" for "mirror"; "R" will be used for rotations.) a. If B is a k-blade, then MB(a) = (−1)k+1BaB−1. b. If B is a hyperplane and b = B∗ (which is a vector normal to B), then MB(a) = −bab−1. Proof. a. From Figure 2, MB(a) = a‖ − a⊥. Thus it suffices to prove that (−1)k+1Ba‖B−1 = a‖ and (−1)k+1Ba⊥B−1 = −a⊥. a. We prove only the case B = b, a vector. Thus from Eqs. (1.13) and (1.14), MB(a) = a‖ − a⊥ = ( a * b)b−1 − ( a ∧ b)b−1 (1.17) = ( b * a)b−1 + ( b ∧ a)b−1 = bab−1. (1.18) b. Setting B = bI in Part (a), MB(a) = (−1)n(bI)a(bI−1) (1.19) = (−1)nb(−1)n−1aI I−1b−1 = −bab−1. 10 1.6 k -Volumes 1.6.1. k-volumes. Let blade B = b1b2 * * *bk, a product of nonzero orthogonal vectors. The norm of B is |B| = |b1||b2| * * * |bk|. This is the k-volume of the rectangular parallelepiped with the b's as edges. In this way B represents both a subspace and a k-volume in the subspace. The algebra and geometry are consistent here. For example, b1b2 and (2b1)( 1 2b2) indicate different rectangles with the same area. The algebra respects this: b1b2 = (2b1)( 1 2b2). Figure 3: u1∧u2 = b1b2. 1.6.2. Blades as outer products. Let u1,u2, . . . , uk be linearly independent vectors. Then B = u1∧u2∧* * *∧uk is a k-blade. Proof. By induction. We perform a GA version of GramSchmidt orthogonalization on the ui. Note how the rejection operator of GA simplifies the VA version. The k = 1 case is clear. For ease of notation, we induct from k = 2 to k = 3 . Thus we assume that u1 ∧ u2 is a 2-blade, i.e., u1 ∧ u2 = b1 b2 with b1 ⊥ b2. See Figure 3. Let b3 = ( u3 ∧ (u1 ∧ u2) ) /(u1 ∧ u2) be the rejection (Eq. (1.14)) of u3 by the subspace u1 ∧ u2.5 Since u1,u2, and u3 are linearly independent, b3 6= 0. We have u1 ∧ u2 ∧ u3 = (u1 ∧ u2) ∧ b3 = (b1b2) ∧ b3 = b1b2 b3, (1.20) a 3-blade. The last equality follows from the definition of ∧, Eq. (1.9). We now have two ways to express a blade: as a geometric product of nonzero orthogonal vectors and an outer product of linearly independent vectors. ♦ We are beginning to see some of the power of GA promised in the introduction. Geometric objects are represented directly as members of the algebra. Examples: Oriented subspaces and k-volumes are represented by blades. Geometric relationships are expressed algebraically. Two examples: x ∈ B⇔ x ∧B = 0, x ⊥ B⇔ x * B = 0. Geometric operations on objects are represented by algebraic operations. Examples: A∗ = AI−1, a⊥ = ( a∧B)B−1, a‖ = ( a * B)B−1. The result of an operation can be substituted in other expressions, which can then be manipulated algebraically. ♦ All this without using coordinates. Geometric algebra is coordinate-free: coordinates are needed only when specific objects or operations are under consideration. ♦ These features of GA fit naturally into the modern techniques of object oriented programming. 5 To compute b3, use (u1 ∧ u2)−1 = (b1b2)−1 = b−12 b −1 1 = (b2/|b2|2)(b1/|b1|2). 11 2 Algebra 2.1 GA complex numbers 2.1.1. GA complex numbers. A GA complex number in Gn is a multivector of the form a+bi, where a and b are scalars and i is the unit pseudoscalar of some plane in Rn. For a fixed i, the GA complex numbers a+ bi are isomorphic to the usual complex numbers, since i2 = −1. This is true for every i, so every plane in Rn has its own complex number system in Gn. Let θ be the angle between vectors u and v. Section 1.3 showed that the product of two vectors is a GA complex number: uv = u * v + u ∧ v = |u||v| cos θ + i|u||v| sin θ = |u||v|(cos θ + i sin θ). Define ei θ = cos θ + i sin θ.6 Set r = |u||v|. Write the GA complex number uv in polar form: uv = reiθ. (2.1) Every GA complex number a+ ib can be put in the polar form rei θ by setting r = √ a2 + b2, cos θ = a/r, and sin θ = b/r . Note the familiar eiπ/2 = i. Figure 4: reiθ. The polar form rei θ of a GA complex number indicates its geometric representation: an oriented arc of a circle of radius r. The arc is in the plane i and subtends the scalar angle θ. See Figure 4. If the arc is moved around the circle, then none of r, i, and θ change. Thus reiθ does not change. Similarly, a vector does not change when moved along a line. ♦ Traditional complex numbers use geometrically irrelevant real and imaginary axes. Introducing them breaks the rotational symmetry of the plane. This makes it impossible to implement traditional complex numbers coherently in different planes in higher dimensions. ♦ With GA complex numbers, the a, b, i, and θ above have a geometric meaning independent of any particular coordinate system. This is different from traditional complex numbers a+ bi, where a, b and i are defined using an arbitrarily chosen real axis. ♦ The usual complex number i as a point in a plane is not needed. It is not part of geometric algebra. 6The exponential can also be defined with the usual power series. 12 2.1.2. Quaternions. The set of GA complex numbers in G3 is a subalgebra of G3. To see this, let {i1 = e3e2, i2 = e1e3, i3 = e2e1} be a basis for bivectors in G3. You can check that i21 = i 2 2 = i 2 3 = −1 and i1i2 = i3, i2i3 = i1, i3i1 = i2. (2.2) Every GA complex number in G3 can be put in the form a+ b1i1 + b2i2 + b3i3. From Eq. (2.2), the product of such multivectors is another. By Section 1.5.4, the product is a GA complex number. ♦ The result fails in G4: (e1e2)(e3e4) is not a GA complex number. The identities Eq. (2.2) characterize the quaternions. Thus the GA complex numbers in G3 form the quaternion algebra. ♦ Traditionally, quaternions have been considered as scalar + vector. So considered, they have not been satisfactorily united with vectors in a common mathematical system [4, 18]. Considered here as scalar + bivector, they are united with vectors and complex numbers in GA. ♦ For many, quaternions are a 19 th century mathematical curiosity. But many roboticists, aerospace engineers, and game programmers know better: quaternions are the best way to represent rotations in 3D, as we will see in Section 2.2.1. ♦ Complex numbers and quaternions are only two of the many algebraic systems embedded in GA. We shall see more examples. Having these systems embedded in a common structure reveals and clarifies relationships between them. For example, the product of two vectors is a GA complex number. And in G3 the GA complex numbers are the quaternions. ♦ The exterior (Grassmann) algebra is another system embedded in GA. It consists of outer products of nonzero vectors. It is thus only part of GA, not using the inner or geometric products. Taking advantage of these products simplifies the exterior algebra. For example, the GA dual, whose definition uses the geometric product, is the Hodge star dual, up to a sign. The GA definition allows easier manipulation. 2.2 Rotations 2.2.1. Rotations in R3. Orthogonal matrices and Euler angles are among the representations of rotations in R3 in use today. GA provides a better representation. In GA the rotation of a vector u by an angle θ around an axis n is given by Riθ(u) = e −nIθ/2uenIθ/2. (2.3) We prove this in Section 2.2.3. The formula expresses the rotation simply and directly in terms of θ and n. We write Riθ(u) = RuR −1, where the unit GA complex number R = e−nIθ/2, a unit quaternion, also called a rotor, represents the rotation. 13 2.2.2. Rotation composition. Follow the rotation R1 with the rotation R2. Then their composition is represented by the product R = R2R1: M → R2(R1MR−11 )R −1 2 = RMR −1. Since the product of rotors is another, we have a simple proof of the important fact that the composition of 3D rotations is again a rotation. As an example, a rotation by 90◦ around the e3 axis followed by a rotation of 90◦ around the e1 axis is a rotation of 120 ◦ around e1 − e2 + e3: (cos 45◦ − e1I sin 45◦ ) (cos 45◦ − e3I sin 45◦ ) = cos 60◦ − e1 − e2 + e3√ 3 I sin 60◦. ♦ Rotors are superior to orthogonal matrices in representing 3D rotations: (i) The rotor representation can simply be written down (Eq. (2.3)). This is not easy for the matrix representation.7 (ii) It is more efficient to multiply rotors than matrices. (iii) If a rotor product is not quite normalized due to rounding errors, then divide by its norm to make it so; if a product of orthogonal matrices is not orthogonal, then use Gram-Schmidt orthonormalization, which is expensive and not canonical. (iv) Rotors are part of GA, while matrices form an algebra external to VA. 2.2.3. Rotations in Rn. In GA, an angle is a bivector iθ: i specifies the plane in which it resides and θ specifies its size. An angle iθ specifies a rotation in Rn: i specifies the plane of the rotation and θ specifies the amount of rotation. (Only in 3D does a rotation have an axis, the unique direction normal to the plane of the rotation.) Figure 5: Rotation by angle iθ. Let the rotation carry the vector u to the vector v. First suppose that u ∈ i . Left multiply uv = |u||v| eiθ, Eq. (2.1), by u and use u2 = |u|2 = |u| |v| to obtain v = u ei θ; ei θ rotates u to v. Figure 5 depicts the rotation in action: eiθ rotates u to v. The analog in standard complex algebra is familiar. Now consider a general u. Decompose with respect to i: u = u⊥ + u‖ (u⊥ ⊥ i, u‖ ∈ i). The rotation rotates u‖ as above but does not affect u⊥ . Thus v = u⊥ + u‖ e i θ = u⊥e −i θ/2 ei θ/2 + u‖ e i θ/2 ei θ/2 = e−i θ/2 u⊥ e i θ/2 + e−i θ/2 u‖ e i θ/2 (since u⊥i = iu⊥ and u‖i = −iu‖) = e−i θ/2 u ei θ/2. (2.4) In 3D this is equivalent to Eq. (2.3). For in G3, n = i∗ = i/I. 7 Rodrigues' rotation formula (1840) gives the matrix representation of a 3D rotation [16]. Rodrigues also gave a formula for the composition of two rotations [17]. 14 2.2.4. Rotate rotations. Let R1 represent a rotation by angle i1θ1. Rotate the rotation: rotate the plane i1 of this rotation with a rotation represented by R2. It is easy to show that the rotated rotation is represented by R2R1R −1 2 . Rotations rotate just as vectors do! 2.2.5. The special orthogonal group. In nD, n > 3, rotations by angles iθ are not closed under composition. They generate the orientation and inner product preserving special orthogonal group SO(n). Given e−i θ/2, choose, using Eq. (2.1), unit vectors b1 and b2 so that e −i θ/2 = b1b2. Then the rotation Eq. (2.4) can be written u → (b1b2)u(b1b2)−1. We may drop the normalization |bi| = 1 in this formula. Thus a member of SO(n) can be represented by a product of an even number of nonzero vectors B = b1b2 * * *b 2k: u → BuB−1 (Section 2.2.2). ♦ Equation (2.4) represents a rotation of 2π by e−i 2π/2 = −1. The products B above represent the simply connected double covering group of SO(n), with ±B representing the same element of SO(n). This is another algebraic system embedded in GA. Matrices do not represent the double cover. A particular area where geometric algebra provides a unifying language is in the description of rotations. The most fundamental modern treatments such as those of Abraham, Marsden, Arnol'd and Simo use differential topology and describe rotations in terms of the Lie group SO(3). A rotation is thus an element of a differentiable manifold, and combinations of rotations are described using the group action. Infinitesimal rotations and rotational velocities live in the tangent bundle TSO(3), a differentiable manifold with distinctly non-trivial topology, from where they can be transported to the tangent space at the identity, identifiable with the Lie algebra so(3). As throughout all of the differentiable topology formulation of mechanics, a proliferation of manifolds occurs. ... In geometric algebra there is no such proliferation of manifolds: the mathematical arena consists only of elements of the algebra and nothing more. [15] 2.2.6. Pauli's electron theory. In 1927 Wolfgang Pauli published a quantum theory of an electron in an electromagnetic field. Pauli's theory does not take Einstein's special relativity theory into account. A year later Paul Dirac published a relativistic quantum theory of an electron in an electromagnetic field. We compare the VA and GA formulations of Pauli's theory in this section and of Dirac's theory in Section 4.1.5. An electron has a property called spin, with unchanging value 12 . Spin is a quantum mechanical phenomenon, with no classical analog. But there is a spin axis and plane i = i(t). Pauli's equation describes how an electron's position and spin axis are affected by an electromagnetic field. 15 The VA formulation of Pauli's theory uses the three complex Pauli matrices σ1 = ( 0 1 1 0 ) , σ2 = ( 0 −i i 0 ) , σ3 = ( 1 0 0 −1 ) . Real linear combinations of these matrices, together with the identity matrix I, generate the Pauli algebra. In the theory the σi are associated, but not identified, with orthogonal directions in R3. But they should be so identified. For the Pauli algebra is isomorphic to G3, with ej ↔ σj ! Example: e1e2e3 = I ↔ σ1σ2σ3 = iI. Geometrically, the left side says that the orthonormal vectors e1, e2, e3 determine a trivector of volume 1. The right side says . . . ?? ♦ This is a typical, if simple, situation: a GA expression has a clear geometric meaning and its VA equivalent does not. ♦ The VA formulation uses the "vector" of matrices σ ≡ (σ1, σ2, σ3) to associate a vector u = u1 e1 + u2 e2 + u3 e3 with the matrix σ * u ≡ u1 σ1 + u2 σ2 + u3 σ3. The identity (σ * u)(σ * v) = (u * v) I + iσ * (u × v) plays an important role. It is a clumsy way to express a fundamental geometrical fact. For the identity is a matrix representation of the fundamental GA identity uv = u * v + u ∧ v , Eq. (1.5)! Now consider a special case of Pauli's equation for the spin of a stationary electron particle in a spatially uniform but time varying magnetic field. This case is important, for example, in the theory of nuclear magnetic resonance.8 The table compares the VA and GA formulations of the theory. The physical scalar constant γ is called the gyromagnetic ratio of the electron. The vector b is the usual magnetic field, usually denoted B. We reserve B for the bivector magnetic field, B = −b∗. The vector e is the usual electric field vector, usually denoted E. VA GA Magnetic field b B Electromagnetic field e,b e + B Spin Ψ = [ a0+ia3 −a2+ia1 ] ψ = a0 + Σk akIek Pauli equation Ψ′ = 12 iγ (σ * b)Ψ ψ ′ = 12γBψ. In the table both Ψ and ψ are normalized: a20 +a 2 1 +a 2 2 +a 2 3 = 1. Thus the spin ψ is a rotor; it can be put in the form ψ = e−i θ/2. ♦ The VA version represents the electromagnetic field with two objects, e and b. The GA version uses one, e + B, which can be manipulated as a whole. ♦ The VA version of Pauli's equation consists of two coupled complex equations, one for each component of Ψ. The single GA equation ψ′ = 12γBψ is often significantly easier to solve. ♦ The VA formulation of Pauli's theory, the one taught and used almost everywhere, requires one to learn specialized mathematics, the Pauli algebra. The GA version uses a general purpose mathematical language. 8Then the spin1 2 objects are atomic nuclei. 16 2.3 Linear Algebra Here is a sampling of GA ideas in linear algebra. 2.3.1. Linear independence. The proof in Section 1.6.2 shows that vectors u1,u2, . . . ,uk are linearly independent ⇔ u1 ∧ u2 ∧ * * * ∧ uk 6= 0 . Geometrically, this states that the vectors span a parallelepiped of nonzero kvolume. 2.3.2. Outermorphisms. We have formulas for the rotation Riθ(u) of a vector u by an angle iθ (Eq. (2.4)); the projection PB(u) of u on a blade B (Eq. (1.13)); and the reflection MB(u) of u in a blade B (Section 1.5.14a): Riθ(u) = e −iθ/2ueiθ/2, PB(u) = (u * B)B−1, MB(u) = (−1)k+1BuB−1 (k = grade(B)). We can extend the formulas to rotate, project, and reflect higher dimensional objects. The figures below show that u ∧ v rotated is Riθ(u) ∧ Riθ(v), u ∧ v projected on the bivector B is PB(u) ∧ PB(v), u ∧ v reflected in the bivector B is MB(u) ∧MB(v). Thus we need to extend Riθ, PB, MB according to the captions of the figures. Figure 6: PB(u ∧ v) = PB(u) ∧ PB(v). Figure 7: Riθ(u ∧ v) = Riθ(u) ∧ Riθ(v). Figure 8: MB(u ∧ v) = MB(u) ∧MB(v). Every nonzero linear transformation f on Rn extends uniquely to a linear transformation f on Gn satisfying f(A ∧ B) = f(A) ∧ f(B) for all multivectors A and B. The extension is called an outermorphism. Outermorphisms are the key to the application of geometric algebra to linear algebra. They satisfy f g = f g and f−1 = f−1. Henceforth we drop the underbar and let f denote both a linear transformation on Rn and its outermorphism extension to Gn. For vectors u and v, f(u∧v) = f(u)∧ f(v) is a way to express algebraically the geometric fact that a linear transformation maps the parallelogram u∧v to the parallelogram f(u) ∧ f(v). ♦ There is no analog of this in VA, even in R3 when representing planes by normal vectors. For example, let f transform the plane e1 ∧ e2 to some other plane and e3 to itself. Then f(e1 × e2) 6= f(e1)× f(e2). 17 The outermorphism extensions of Riθ, PB, MB to blades A are Riθ(A) = e −iθ/2Aeiθ/2, PB(A) = (A * B)B−1, MB(A) = (−1)j(k+1)BAB−1 (k = grade(B), j = grade(A)). 2.3.3. Inner product interpretation. The extended PB reveals the geometric interpretation of the subspace A * B as The orthogonal complement in B of the projection of A on B. For this, use the easily proved B2 = ±|B|2 and the pseudoscalar B/|B| of B: A * B = ( (A * B)B−1 ) B = ±|B|PB(A)/(B/|B|) = ±|B|PB(A)∗, where the dual " * " is taken in B. The factor ±|B| does not change the subspace represented. 2.3.4. Angle between subspaces. The angle θ between A and B is given by a ratio of j-volumes (j = grade(A)):9 cos θ = |PB(A)| |A| = |A*B| |A| |B| . For example, the angle between the line A = e2 + e3 and the plane B = e1e2 is π/4. 9 |(A * B)B−1| = |A * B|/|B| because B−1 is a blade. 18 2.3.5. Determinants. Outermorphisms are grade preserving. For we have f(e1 ∧ * * * ∧ ek) = f(e1) ∧ * * * ∧ f(ek). If f(e1), . . . , f(ek) are linearly independent, then from Section 1.6.2, the right side is a non-zero k-vector. If they are linearly dependent, then the right side is 0, again a k-vector. Since f is grade preserving, f(I) is, with I, an n-vector. It is thus a multiple of I: f(I) = det(f) I, where we have defined the determinant det(f) of f. This simple definition tells us what the determinant of a linear transformation is: the factor by which it multiplies n-volumes. Compare this to the usual algebraic definition of the determinant of the matrix of the transformation. The GA definition makes obvious det(f g) = det(f) det(g), the product rule. Let {f1, f2, . . . , fn} be vectors in Rn. Let E = {e1, e2, . . . , en} be an orthonormal basis for Rn. Then f1 ∧ f2 ∧* * *∧ fn = det  e1 * f1 e1 * f2 * * * e1 * fn e2 * f1 e2 * f2 * * * e2 * fn ... ... ... ... en * f1 en * f2 * * * en * fn  I. (2.5) To see this, define a linear transformation f by f(ei) = fi. Then both sides of the equation are equal to det(f)I. Standard results about determinants of matrices follow from this. For example, swapping two rows of a matrix changes the sign of its determinant. 2.3.6. Cramer's rule. Problem: In R4 solve v = c1u1+c2u2+c3u3+c4u4 for, say, c2. Solution: Outer multiply the equation by u1 on the left and u3∧u4 on the right. Then use ui ∧ ui = 0: u1 ∧ v ∧ u3 ∧ u4 = c2 (u1 ∧ u2 ∧ u3 ∧ u4) . If the ui are linearly independent, then the outer product on the right is invertible. Then we have a symbolic formula for c2. It can be further manipulated. 2.3.7. Fourier expansion. Denote a member of a canonical basis by eJ , where J is a set of increasing indexes. For example, if J = {2, 4}, then eJ = e2 e4 . Multiply the expansion A = ∑ J aJeJ on the left by e −1 K , take the scalar part, and use 〈 e−1K eJ 〉0 = δJK to give aK = 〈 e −1 K A 〉0. This gives the Fourier expansion A = ∑ J〈 e −1 J A 〉0 eJ . 19 3 Geometric Calculus 3.1 The Gradient 3.1.1. The gradient. The gradient, or vector derivative, is ∇ = ∑ j ej∂j , where ∂j is a partial derivative. The gradient acts algebraically as a vector when applied to scalar or vector valued functions: we can multiply it by a scalar field f , giving the vector field ∇f ; dot it with a vector field f , giving the scalar field ∇* f ; and in R3 cross it with f , giving the vector field ∇× f . But ∇f , a product of vectors, cannot be formed in vector calculus. In geometric calculus ∇f does make sense. This product of vectors is scalar + bivector: ∇f = ∇ * f + ∇ ∧ f , just as with the fundamental identity, Eq. (1.5). In this way ∇ unifies the divergence and curl (generalized to ∧). ♦ The geometric calculus identity ∇2f = ∇(∇f) cannot be written in vector calculus. Instead, we must resort to ∇2f = ∇(∇ * f) −∇ × (∇ × f), and this only in R3. 3.1.2. Electromagnetism. Classical (i.e., non-quantum) electromagnetic theory is usually formulated in R3 vector calculus. Two vector fields, the electric field e and the magnetic field b,10 represent the electromagnetic field. Maxwell's equations are the heart of the theory. In a vacuum they are:11 ∇ * e = 0, ∇× b = ∂te, ∇× e = −∂tb, ∇ * b = 0. (3.1) The geometric calculus formulation of Maxwell's theory represents a magnetic field with the bivector B = −b∗. Maxwell's equations become, using the duality relations Eqs. (1.11) and (u ∧ v)∗ = u× v from Section 1.5.4, ∇ * e = 0, ∇ * B = −∂te, ∇ ∧ e = −∂tB, ∇ ∧B = 0. (3.2) The geometric calculus formulation represents the electromagnetic field with the single multivector field F = e + B, vector + bivector. Maxwell's equations become (∂t + ∇)F = 0; the scalar, vector, bivector, trivector parts of this equation are precisely Eqs. (3.2), as you can check. The electromagnetic field obeys the wave equation: (∂2t −∇2)F = (∂t −∇)(∂t + ∇)F = 0. ♦ The vector calculus derivation of this result is not straightforward. ♦ Calculations using the G3 formulation of Maxwell's equations are often easier, and sometimes much easier, than using the R3 formulation. This is due in part to the fact that the GA derivative ∇, unlike the divergence ∇* and curl ∇× in Eqs. (3.1), is invertible, as we will see in Section 3.2.4. 10 The fields are traditionally denoted E and B. In geometric calculus it is more convenient to use e and b. 11Up to constants that define the units used. 20 3.1.3. Analytic functions. Let f(x, y) = u(x, y) + v(x, y) i , with u and v real valued. Then ∇f = e1(ux + vxi) + e2(uy + vyi) = e1(ux − vy) + e2(vx + uy) . From the Cauchy-Riemann equations, ∇f = 0 ⇔ f is analytic. Generalizing, we call a multivector field F on Rn analytic if ∇F = 0. ♦ This definition leads to a generalization of standard complex analysis to n (real) dimensions. Many standard results generalize. A simple example: since ∇F = 0 ⇒ ∇2F = ∇(∇F ) = 0, analytic functions are harmonic functions. Most important, Cauchy's theorem and Cauchy's integral formula generalize, as we shall see. ♦ There is no multivector field called the derivative of F . 3.1.4. Generalize ∇. It violates the spirit of GA to write f(x, y) above as a function of coordinates. Henceforth we shall think of it, equivalently, as a function of the vector x = e1x + e2y, and similarly in higher dimensions. For example, for a constant multivector M , ∇(xM) = nM , as you can verify. With this change of viewpoint we can generalize ∇. First, the directional derivative of F in the "direction" A is ∂AF (X) = lim τ→ 0 F (X + τPX(A))− F (X) τ , where PX projects onto the grades of X. The projection ensures, for example, that the directional derivative of a function F of vectors only has a zero directional derivative in the directions other than vectors. Abbreviating ∂eJ to ∂J , we generalize the vector derivative ∇ = ∑ j ej∂j to the multivector derivative: ∇ = ∑ J e−1J ∂J . This is a Fourier expansion of ∇ (Cf. Section 2.3.7). It can operate on any multivector valued function. 3.1.5. Minimization example. As an application of the multivector derivative, consider the problem of rotating 3D vectors u1,u2, . . . ,un to best approximate the vectors v1,v2, . . . ,vn [12]. By this we mean choose a rotor R to minimize φ(R) = ∑ j(vj − RujR−1)2. We show that the minimum occurs when ∇φ(R) = 0 . First note that we may drop the constraint |R| = 1, since φ(aR) = φ(R). Set R = r0 + e3e2r1 + e1e3r2 + e2e1r3. Then φ(R) = φ(r0 + e3e2r1 + e1e3r2 + e2e1r3) is a real valued function of four real variables. Its minimum occurs when all four partial derivatives ∂φ/∂ri = 0. We have ∇φ(R) = 1 ∂φ/∂r0 + e2e3 ∂φ/∂r1 + e3e1 ∂φ/∂r2 + e1e2 ∂φ/∂r3. Thus the minimum occurs when ∇φ(R) = 0. 21 After learning a few rules about differentiating with respect to a multivector we find that ∇φ(R) = 0 ⇒ ∑ j vj ∧ (RujR−1) = 0 . The right side has an agreeable geometric interpretation: the bivector sum of the parallelograms spanned by the vj and the rotated uj is zero. The equation can be solved for R. ♦ Geometric calculus uses only one derivative, ∇φ, to solve this problem. Vector calculus uses the four components ∂φ/∂ri of ∇φ. It is generally best not to break a multivector into its components, just as it is generally best not to break a complex number into its real and imaginary parts or a vector into its components. 3.2 Integrals Let M be a compact oriented m-dimensional manifold with boundary in Rn. If the terminology is unfamiliar, think of 1-dimensional curves, 2-dimensional surfaces, and 3-dimensional solids in Rn. 3.2.1. The directed integral. Let F (x) be a multivector valued field on M . Then we can form the directed integral∫ M dmxF. (3.3) Here dmx = Im(x)d mx, where dmx is an element of m-volume of M at x and Im(x) is the pseudoscalar of the tangent space to M at x. For example, if M is a surface in R3, then d2x = dS is an element of area of M and I2(x) is a bivector, the pseudoscalar of the tangent plane to M at x. If M is a solid in R3, then d3x = dV is an element of volume of V and I3(x) ≡ I3 is the pseudoscalar of R3. Note that the order of the factors in the integrand is important, as the geometric product is not commutative. The integral ∫ C f(z) dz from complex analysis can be written as a directed integral, a special case of Eq. (3.3). 22 3.2.2. The fundamental theorem. The vector derivative on a manifold M is a generalization of ∇ to manifolds. It is defined intrinsically, without reference to the Rm in which it resides. However, this definition would lead us too far astray, so think of ∂ as the projection of ∇ on M . Let F be a multivector valued function defined on M . The Fundamental Theorem of (Geometric) Calculus ∫ M dmx∂F = ∫ ∂M dm−1xF. (3.4) This is the crown jewel of geometric calculus. One must admire its stark simplicity. Its scalar part is equivalent to Stokes' theorem for differential forms. Gauss' and Stokes' theorems of vector calculus are special cases. A function on a manifold is analytic if ∂F ≡ 0. (Cf. Section 3.1.3.) The generalization of Cauchy's theorem to a manifold is an obvious special case of the fundamental theorem: If F is analytic on M , then ∫ ∂M dm−1xF = 0. The fundamental theorem also generalizes the residue theorem. Let Ωn be the (n−1)-volume of the boundary of the unit ball in Rn (e.g., Ω2 = 2π). Let δ be Dirac's delta function. Then F has a pole at xk with residue the multivector Rk if ∂F (x) = ΩnRkδ(x − xk) near xk. Eq. (3.4) holds if F is analytic in M except at a finite number of poles at the points xk. Thus∫ ∂M dm−1xF = ∫ M dmx∂F = ∫ M dmx I(x) ( ∑ ΩnRkδ(x− xk) ) = Ωn ∑ I(xk)Rk. ♦ With directed integrals on manifolds, complex analysis extends to manifolds of any dimension. Complex analysis becomes a subdiscipline of real analysis: it is the study of multivector functions F with ∂F = 0. Traditional real analysis does not use directed integrals. Unification with complex analysis cannot be achieved without them. For example, consider Cauchy's theorem:∮ C f(z) dz = 0. Green's theorem from vector calculus gives the real and imaginary parts of the theorem separately. But the theorem cannot be written as a single formula in vector calculus or with differential forms. 23 In Rn the fundamental theorem can be generalized, with several important corollaries. Eqs. (3.5) and (3.6) below are examples. 3.2.3. F from ∇F and boundary values. Let F be a multivector valued function defined in a region V of Rn. Then for x0 ∈ V , F (x0) = (−1)n Ωn I {∫ V x− x0 |x− x0|n dnx∇F (x) − ∫ ∂V x− x0 |x− x0|n dn−1xF (x) } . (3.5) In particular, F |V is determined by ∇F |V and F | ∂ V . This is a generalization of Pompeiu's (not very well known) theorem of complex analysis. If F is analytic, then Eq. (3.5) becomes F (x0) = − (−1)n Ωn I ∫ ∂V x− x0 |x− x0|n dn−1xF (x) . This is a generalization of Cauchy's integral formula. 3.2.4. ∇ is invertible. Eq. (3.5) can be used to prove that F has an antiderivative P : ∇P = F . In other words, ∇ is invertible. Clearly, two antiderivatives of F differ by an analytic function. This generalizes the n = 1 case, where the analytic functions are the constant functions. For n > 2 an antiderivative is given by P (x0) = 1 (n− 2) Ωn {∫ V dmx |x− x0|n−2 ∇F (x)− ∫ ∂V dm−1x |x− x0|n−2 n(x)F (x) } , (3.6) where n(x) is the unit outward normal to ∂V . (The normal can be computed as n = I−1I(x), where I is the pseudoscalar of Gn and I(x) is the pseudoscalar of the tangent space to M at x.) If F is analytic, then the first integral is zero. If |∇F (x) | = O( |x |−2) and limx→∞ xF (x) = 0 , then P (x0) = 1 (n− 2) Ωn ∫ Rn dmx |x− x0|n−2 ∇F (x) . 3.2.5. Potentials, Fields, Sources. Three fields P, F, and S with ∇P = F and ∇F = S are called a potential, a field, and a source, respectively. Given a source S with suitable boundedness, P and F exist. A common situation in R3 is S = s− s∗, where s is a scalar field and s is a vector field with ∇ * s = 0. Then we can take P = p− p∗, where p is a scalar field, p is a vector field with ∇ * p = 0, and F = f , a vector field. Vector calculus cannot form S or P . In particular, it cannot use the simple formulas F = ∇P and S = ∇F . Instead, f = ∇p−∇× p, s = ∇ * f , and s = ∇× f . 24 4 Other Models GA is not limited to modelling n-dimensional Euclidean space with Gn. We will explore three other GA models. 4.1 Spacetime 4.1.1. Indefinite inner products. By definition, the vector space Rp,q has an indefinite inner product: every orthonormal basis has p ei's with ei * ei = 1 and q ei's with ei * ei = −1 (Sylvester's law of inertia). GA readily extends Rp,q to Gp,q, just as it extends Rn to Gn. Many properties of Gn remain valid in Gp,q, notably, u * u = u2 and vu = −uv for orthogonal vectors u and v. 4.1.2. The spacetime algebra. An event is a specific time and place. It has neither temporal nor spatial extension. A set of events is called a spacetime. GA models a spacetime devoid of significant gravitational fields with G1,3, the spacetime algebra. Vectors x ∈ G1,3 are not denoted in bold. Here are the two basic physical facts. Consider two events x and x + ∆x. (i) If the events are on the worldline (path in spacetime) of an inertial (not accelerating) clock, then ∆x2 > 0, and the clock measures proper time |∆x| between the events.12 (ii) If the events are on the worldline of a pulse of light emitted in a single direction, then ∆x2 = 0. The square ∆x2 is called the spacetime interval between the events. Next we relate the spacetime interval to time and space measurements made "in the laboratory". Imagine an inertial observer assigning coordinates to events: spatial coordinates (x1, x2, x3) using an inertial coordinate grid, and a time coordinate t with synchronized clocks at rest in the grid. The coordinates (t, x1, x2, x3) form an inertial frame. The observer is at rest at the spatial origin of the frame, with parameterized worldline (t, 0, 0, 0). The unit tangent vector to the worldline is γ0 = d(t, 0, 0, 0)/dt = (1, 0, 0, 0), with γ0 * γ0 = 1. The unit tangent vectors along the spatial axes are γ1, γ2, γ3, with γi * γi = −1. So we do have G1,3. Expand x = tγ0 + ∑3 i=1 xiγi. Use γ0 to perform a spacetime split of x: xγ0 = x * γ0 + x ∧ γ0 ≡ t+ x, where x = x ∧ γ0 = 3∑ i=1 xi γi ∧ γ0 ≡ 3∑ i=1 xiσi. We have set σi = γi ∧ γ0 = γiγ0. You can check that σ2i = 1, σi * σj = 0 for i 6= j, and σiσj = −σjσi. Thus the bivectors σi can be considered an orthonormal basis of vectors for G3. 12 We use units of space and time in which the speed of light c = 1. For example, time might be measured in seconds and distance in light-seconds. 25 Compute: x2 = x(γ0γ0)x = (xγ0)(γ0x) = (t+ x)(t− x) = t2 − x2. The "∆ version" is ∆x2 = ∆t2 −∆x2. This fundamental equation relates the spacetime interval ∆x between events to the time and distance between them in the inertial frame. The scalar ∆t and the vector ∆x between two events are different in different inertial frames. So neither has geometric significance independent of a particular inertial frame. However, they combine to form ∆x2 = ∆t2 − ∆x2, the square of a vector, which is independent of inertial frames. Parameterize the worldline of a material particle x(τ), where τ is the proper time along the worldline. Then dτ2 = dx2 > 0. Define the proper velocity v = dx/dτ . Then v is a unit vector, v2 = 1, tangent to the worldline. Relate the proper velocity v = dx/dτ to the inertial frame velocity dx/dt as follows. Write vγ0 = d dτ (xγ0) = d dτ (t+x), so v * γ0 = dt dτ and v∧γ0 = dx dτ . Thus dx dt = dx dτ dτ dt = v ∧ γ0 v * γ0 . ♦ R1,3 is limited in its representation of spacetime. As but one example, planes are not represented in R1,3. (They are often represented in R3 using cross products.) To get very far in relativistic physics, methods beyond VA must be employed, traditionally the tensor algebra or exterior algebra of R1,3, which are very different from anything a student has seen before in VA. GA represents spacetime with G1,3, the spacetime algebra. The transition from G3 to G1,3 is much easier. And we get the spacetime split. 4.1.3. Boosts. Consider a second inertial frame, moving at constant velocity v = dx/dt with respect to the first, and with coordinates (t, x1, x2, x3). The spatial axes of the two frames are parallel and their origins (0, 0, 0, 0) coincide, i.e., their spatial origins coincide when t = t = 0. We are in G1,3, so v2 < 0. The active transformation x→ x is called a boost or Lorentz transformation. It is a rotation in the γ0v plane: x = e−γ0vα/2 x eγ0vα/2. (Cf. Eq. (2.4).) We have factored v = tanh(α)v, v2 = −1.13 And since (γ0v) 2 = +1, the exponential is eγ0vα/2 = cosh(α/2) + γ0v sinh(α/2). ♦ VA represents boosts with 4 × 4 orthogonal matrices on R1,3. Unwieldy! The GA exponential function representation of boosts in G1,3 has advantages similar to the GA exponential function representation of rotations in R3 (See the comments at the end of Section 2.2.2). 13 Speeds of material objects are less than c = 1, so −1 < v2 ≤ 0. Thus tanh(α) = (−v2) 1 2 . 26 4.1.4. Composition of boosts. By definition, a boost is free of any spatial rotation. Surprisingly, a composition of boosts is not. The composition of boosts e−γ0vβ/2 and e−γ0ûα/2 can be written as a spatial rotation followed by a boost: e−γ0vβ/2 e−γ0ûα/2 = e−γ0ŵδ/2 e−iθ/2. (4.1) Everything is from the point of view of the original frame, so v and ŵ are expressed with respect to that frame. The rotation e−iθ/2 is called a Thomas rotation. It is an important physical effect. We prove Eq. (4.1) by solving it uniquely for ŵ, δ, i, θ on the right side.14 Expand the exponentials and equate the terms with a γ0 component and those without: sαcβû + cαsβv = sδŵ e −iθ/2, cαcβ − sαsβvû = cδ e−iθ/2, (4.2) where sα = sinh(α/2), etc. Divide to obtain ŵ and δ: 15,16 tanh(δ/2) ŵ = sαcβû + cαsβv cαcβ − sαsβvû = tanh(α/2)û + tanh(β/2)v 1− tanh(α/2) tanh(β/2)vû . (4.3) Equate the bivector parts and the scalar parts of Eq. (4.2): sαsβ v ∧ û = cδ sin(θ/2) i, cαcβ − sαsβ v * û = cδ cos(θ/2). Divide to obtain i and θ: tan(θ/2) i = sαsβ v ∧ û cαcβ − sαsβ v * û = tanh(α/2) tanh(β/2) v ∧ û 1− tanh(α/2) tanh(β/2) v * û . The rotation plane is v ∧ û. To obtain the scalar tan(θ/2), substitute v ∧ û = sinφi and v * û = − cosφ, where φ is the scalar angle from v to û. ♦ The derivation of the Thomas rotation with VA is much more difficult, so difficult that it is a rare relativity text which derives it. 14Anthony Lasenby has given a very different derivation of the Thomas rotation [11]. 15 To see that the right side of Eq. (4.3) is in fact a vector, multiply its numerator and denominator by 1−tanh(α/2) tanh(β/2)ûv. Then use û* v = 1 2 (ûv+vû) and Section 1.5.14a. 16 If the boosts are parallel (û = ±v), then vû = −1. Eq. (4.3) becomes tanh(δ/2)ŵ = tanh(α/2 + β/2)û. Thus ŵ = û and δ/2 = α/2 + β/2. The "addition of velocities" formula in special relativity follows: vδ = tanh(δ) = tanh(α+ β) = tanh(α) + tanh(β) 1 + tanh(α) tanh(β) = vα + vβ 1 + vαvβ . 27 4.1.5. Dirac's electron theory. The most elegant formulation of Dirac's relativistic quantum theory of the electron is in the spacetime algebra. Recall from Section 2.2.6 that Pauli's theory represents spins by 3D rotations, i.e., by members of SO(3). Dirac's theory represents spins by members of SO(1, 3). The VA version of Dirac's equation uses the four 4 × 4 complex Dirac matrices γ0, γ1, γ2, γ3 associated with (but not identified with) orthogonal directions in spacetime. These matrices generate the Dirac algebra. The Dirac algebra is isomorphic to G1,3, with the γj matrices corresponding to the γj basis vectors above. Also defined is γ5 = γ0γ1γ2γ3 . So γ5 ↔ I . ♦ Pauli and Dirac invented the geometric algebra for the space in which they were working out of necessity, without realizing that the algebras are not special to quantum theory, but have deep geometric significance and wide applicability. From the perspective of GA, the Pauli and Dirac matrix algebras are uninteresting representations of a geometric algebra, which obscure the physical content of their theories. 4.1.6. Electromagnetism. Section 3.1.2 described the G3 formulation of electromagnetic theory. The spacetime algebra G1,3 formulation is even more elegant. A spacetime bivector field F represents the electromagnetic field. Maxwell's four vacuum equations become a single Maxwell equation: ∇F = 0. What simplicity: the derivative of a single grade field is zero. ♦ In geometric calculus the same derivative ∇ is used in the definition of an analytic function, the minimization example, Maxwell's theory, the full Pauli theory, and the full Dirac theory. That's unification. 28 4.2 The Homogeneous Model We have represented subspaces of Rn (points, lines, planes, ... through the origin) with blades of Gn. This is the vector space model. But we have not represented translated subspaces (points, lines, planes, ... not through the origin). Yet there is nothing special geometrically about the origin. 4.2.1. The homogeneous model. The homogeneous model represents and manipulates all points, lines, planes, ... much as the vector space model represents and manipulates those through the origin. It is the coordinate-free geometric algebra version of homogeneous coordinates used in computer graphics and projective geometry. Figure 9: Vector p = e + p represents the point P . Figure 10: Bivector p ∧ q represents the oriented segment PQ. • The homogeneous model represents a translated k-dimensional subspace of Rn, and k-volumes in it, with a (k + 1)–blade of Gn+1. For this, extend Rn with a unit vector e orthogonal to Rn. Then we have Rn+1, and with it Gn+1. • The homogeneous model represents a point P (a translated 0-dimensional subspace of Rn) with a vector p = e + p ∈ Rn+1 (a 1-blade of Gn+1). (Only vectors in Rn will be denoted in bold.) Figure 9 shows a way to visualize this for R2. The vector p is normalized in the sense that p* e = e* e+p* e = 1. However, the representation is homogeneous: λ(e+p) also represents P for scalars λ 6= 0 . Figure 11 • The homogeneous model represents the oriented length PQ (part of a translated 1-dimensional subspace) with a bivector p∧q. Figure 10 shows a way to visualize this for R2. Let v = q− p and v′ be the vector with endpoint on the line PQ and perpendicular to it. See Figure 11. Then p∧q determines, and is determined by, v and v′. This follows from v = e * (p ∧ q) and p ∧ q = (e+ p) ∧ v = (e+ v′) ∧ v = (e+ v′) v . The equation p ∧ q = (e+ v′) ∧ v shows that p ∧ q does not determine p or q. • The homogeneous model represents the oriented area PQR with the trivector p ∧ q ∧ r. Let V = (q − p) ∧ (r − p), which represents twice the area. Define v′ as above. Then p∧q∧r determines, and is determined by, V and v′. The equation p ∧ q ∧ r = (e+ v′) ∧V shows that p ∧ q ∧ r does not determine p, q, or r. 29 ♦ In VA and the vector space model of GA, vectors do double duty, representing oriented line segments and points. (To represent points, place the tails of all vectors at some fixed origin. Then the heads of the vectors are in oneto-one correspondence with points.) In the homogeneous model oriented line segments and points have different representations. ♦ There is a projective split analogous to the spacetime split. ♦ We now have two geometric algebras for Euclidean n-space: the vector space model Gn and the homogeneous model Gn+1. In both, blades represent geometric objects. In the vector space model a vector represents an oriented line segment. In the homogeneous model it represents a point. In the vector space model an outer product of vectors represents an oriented area. In the homogeneous model it represents an oriented length. Oriented areas and oriented lengths are different, yet they share a common algebraic structure in their respective geometric algebras. Here is the point: We have to learn geometric algebra only once to work with both. 4.2.2. The Euclidean group. Rotations and reflections generate the orthogonal group O(n). Include translations to generate the distance preserving Euclidean group. In Rn translations are not linear. This is a problem: "The orthogonal group is multiplicative while the translation group is additive, so combining the two destroys the simplicity of both."[7] The homogeneous model solves the problem. The subgroup of O(n + 1) which fixes e is isomorphic to O(n). For members of this subgroup map Rn, the subspace of Rn+1 orthogonal to e, to Rn. And since p * q = 1 + p * q , the map is also orthogonal on Rn. For a fixed a ∈ Rn, consider the linear transformation x → x + (x * e)a of Rn+1. In particular, e+ p→ e+ (p + a). This represents a translation by a in Rn. In this way translations are linearized in the homogeneous model. 4.2.3. Join and meet. Geometric objects join to form higher dimensional objects. For example, the join of two points is the line through them; the join of intersecting lines is the plane containing them; and the join of a line and a point not on it is the plane containing them. Geometric objects meet in lower dimensional objects, their intersection. Thus the meet of an intersecting line and plane is their point or line of intersection, and the meet of two intersecting planes is their line of intersection. GA defines the join and meet of two blades (only) to represent the join and meet of the geometric objects that they represent. 30 The join of blades A and B is the span of their subspaces. If A ∩B = {0}, then their join is J = A∧B (1.5.8a). Unfortunately, there is no general formula for the join in terms of the geometric product, as there is for the inner and outer products (Eqs. (1.7) and (1.9)). There are, however, efficient algorithms for computing them [5]. The meet of A and B is the intersection of their subspaces. In this section, let X∗ = XJ−1, the dual of X in the join J of A and B. The meet of A and B is given by A∨ B = A∗ * B . (4.4) Before proving this we give examples of the join and meet. In the vector space model, two lines through the origin join to form a plane. Two examples are e1 ∧ e2 = e1e2 and e2 ∧ e3 = e2e3 . The two planes meet in a line: (e1e2)∨ (e2e3) = (e1e2)∗ * (e2 e3) = −e2 . In the homogeneous model, two points join to form a line. Two examples are `1 = (e+ e1) ∧ (e+ e2) and `2 = e ∧ (e+ e1 + e2) . The two lines meet in a point: `1 ∨ `2 = (e e2 − e e1 + e1e2)∗ * (e e1 + e e2) = 2 ( e+ 12 (e1 + e2) ) . We now prove Eq. (4.4), A∨ B = A∗ * B. We work with the two sides of the equation separately, using duality, Eq. (1.11), in the second line. x ∈ A∨ B ⇔ (x ∈ A and x ∈ B) ⇔ (x ⊥ A∗ and x ⊥ B∗) , x ∈ A∗ * B ⇔ x ∈ (A∗∧B∗)∗ ⇔ x ⊥ A∗∧B∗. (4.5) We show that the right sides are equivalent, completing the proof. For x ∈ J, x ∈ A∗ ∩ B∗ ⇔ x = 0. Thus from Section 1.5.8a, A∗∧ B∗ = span (A∗, B∗). The right sides are equivalent. Eq. (4.5) shows that the dual representation (Section 1.5.13) of the meet is A∗ ∧ B∗. 4.2.4. Projective geometry. The homogeneous model enables us to study projective geometry algebraically in a coordinate-free manner. The blades of Gn+1 represent the points, lines, ... of the projective space Pn. Formulating projective geometry within GA should help to integrate it with the rest of mathematics. In our visualization of the points of the homogeneous model of a plane, Figure 9, a vector of G3 orthogonal to e does not intersect the embedded R2, and thus does not represent a point in the plane. For P2 it represents a point on the line at infinity. 31 GA provides simple algebraic tests for collinearity and concurrency in the projective plane P2: • Points p, q, r collinear⇔ p∧ q∧ r = 0 . This is easy to see: p∧ q represents the line through p and q. From Section 1.5.8a, r is on this line if and only if p ∧ q ∧ r = 0 . • Lines P, Q, R concurrent ⇔ 〈P QR 〉0 = 0 . This is a bit harder. For the bivectors P, Q, and R, we have (P ∗ * Q) * R∗ = 〈P ∗Q 〉2−1 * R∗ = −〈P QR 〉0 . Thus from Eqs. (4.4) and (1.11), P, Q, R concurrent ⇔ (P ∨ Q) ∧R = 0 ⇔ (P ∗ * Q) * R∗ = 0 ⇔ 〈P QR 〉0 = 0 . Figure 12: Desargues theorem. Desargues' Theorem. Figure 12 illustrates the theorem, perhaps the most celebrated in projective geometry: Given coplanar triangles abc and a′b′c ′, construct P,Q,R and p, q, r. The theorem states: P, Q, R concurrent ⇔ p, q, r collinear. We indicate a GA proof of the theorem. In Figure 12, P = a ∧ a′ , with similar expressions for Q and R . Also, p = (b ∧ c)∨ (b ′∧ c ′) , with similar expressions for q and r. Let J = a ∧ b ∧ c and J ′ = a′ ∧ b′ ∧ c′. Then J and J ′ are nonzero multiples of the pseudoscalar. Thus JJ ′ is a nonzero scalar. Desargues' theorem is, from the tests for collinearity and concurrency above, an immediate corollary of the identity (p∧q∧r)∗ = JJ ′〈P QR 〉0, which applies to all pairs of triangles. The identity is thus an algebraic generalization of the theorem. Unfortunately, its proof is rather involved [9]. ♦ The same geometric algebra Gn is used to model two geometries: ndimensional Euclidean space and (n−1)-dimensional projective space. ♦ As we have seen, the homogeneous model is useful. But lengths and angles are not straightforward in the model. There are other problems. For example, the inverse of the representation of a vector is not the representation of the inverse of the vector. At the expense of another dimension, the conformal model solves these problems. 32 4.3 The Conformal Model The conformal model is a powerful geometric algebra for Euclidean and other geometries. Synthetic statements in classical geometries translate directly to coordinate-free algebraic forms. The model incorporates Euclidean, hyperbolic, elliptic, and projective geometries. Having these geometries in a single structure shows relationships between them and unifies them. In short, the conformal model provides a universal computational geometry. After the publication of A Survey of Geometric Algebra and Geometric Calculus, I added a chapter, The Conformal Model, to my text Linear and Geometric Algebra. It is also posted and the book's web site. The chapter is an improved version of the conformal model section of the published paper, so I removed most of the section of the published version here. I refer you to the web site: http://faculty.luther.edu/~macdonal/laga/. The two subsections not included in the chapter follow. 4.3.1. The conformal split. There is a conformal split of p ∈ Gn+1,1 analogous to the spacetime split of Section 4.1.2: pE = p * E + p ∧ E = ( eo − 12 |p| 2e∞ ) + p ∧ E. If p = ∑ i piei, then p ∧ E = ∑ i piei ∧ E. The trivectors σi = ei ∧ E can be considered vectors, an orthonormal basis for Rn. 4.3.2. Noneuclidean geometry. The conformal model can be used for hyperbolic and elliptic geometry in Rn [1]. Let B be the unit ball centered at the origin of Rn. B provides a model for hyperbolic geometry: • The hyperbolic line through p,q ∈ B is p ∧ q ∧ e+ . This is the Euclidean circle through p and q intersecting ∂B orthogonally. • The hyperbolic distance d between p, q satisfies p * q = −2 sinh2(d/2) . The coefficient of e+ in p and q must be normalized to 1. • The hyperbolic group is the subgroup of O(n+ 1, 1) fixing e+ . B provides a model for elliptic geometry: • The elliptic line through p,q ∈ B is p∧q∧e− . This is the Euclidean circle through p and q intersecting ∂B at antipodes. • The elliptic distance d between p and q satisfies p * q = −2 sin2(d/2) . The coefficient of e− in p and q must be normalized to −1. • The elliptic group is the subgroup of O(n+ 1, 1) fixing e− . 33 5 Useful Identities For a more comprehensive list, see Appendix D of [2]. A * (B * C) = (A ∧B) * C . (A * B) * C = A ∧ (B * C) if A ⊆ C B ∧A = (−1)jk(A ∧B) . (A is a j-vector and B is a k-vector.) a ∧A ∧ b = −b ∧A ∧ a . a ∧A ∧ a = 0 . (a ∧ b) * (c ∧ d) = (a * d)(b * c)− (a * c)(b * d) . a * (BC) = (a * B)C + (−1)kB(a * C) . (B is a k-vector.) a * (bc) = (a * b) c− (a * c) b . a * (b1b2 * * *bk) = ∑ r(−1)r+1(a * br) b1 * * * br * * *bk . ( br means omit br) a * (B ∧ C) = (a * B) ∧ C + (−1)kB ∧ (a * C) . (B is a k-vector.) a * (b ∧ c) = (a * b) c− (a * c) b . a * (b1 ∧ b2 ∧ * * * ∧ bk) = ∑ r(−1)r+1(a * br) b1 ∧ * * * ∧ br ∧ * * * ∧ bk . Thus for a blade B = b1 ∧ b2 ∧ * * * ∧ bk, a * B = 0 ⇔ a * br = 0 for all r. a ∧ (B * C) = (a * B) * C + (−1)kB * (a ∧ C) . (B is a k-vector.) (A * B)∗ = A ∧B∗. (Duality) (A ∧B)∗ = A * B∗. (Duality) Take * with respect to the join of A and B . Then A∨ B = A∗ * B. (A∨ B)∗ = A∗ ∧B∗. 6 Further Study Web Sites David Hestenes http://geocalc.clas.asu.edu/ Cambridge University Geometric Algebra Research Group http://www.mrao.cam.ac.uk/~clifford/ University of Amsterdam Geometric Algebra Website https://staff.science.uva.nl/l.dorst/clifford/index.html Books A. Macdonald, Linear and Geometric Algebra. Textbook for the sophomore year linear algebra course includes geometric algebra. Web page: http://faculty.luther.edu/~macdonal/laga/ Introductory YouTube videos. Click 34 A. Macdonald, Vector and Geometric Calculus. Textbook for the sophomore year vector calculus course includes geometric calculus. Web page: http://faculty.luther.edu/~macdonal/vagc/ Introductory YouTube videos. Click D. Hestenes, New Foundations for Classical Mechanics (Kluwer Academic Publishers, 1999). Textbook suitable for courses at an intermediate level. Web page: http://geocalc.clas.asu.edu/html/NFCM.html J. W. Arthur, Understanding Geometric Algebra for Electromagnetic Theory. Wiley-IEEE Press, 2011. C. Doran and A. Lasenby, Geometric Algebra for Physicists. Cambridge University Press, 2003. Includes spacetime algebra, noneuclidean geometry. Web page: http://www.mrao.cam.ac.uk/~cjld1/pages/book.htm L. Dorst, D. Fontijne, S. Mann, Geometric Algebra for Computer Science. Morgan Kaufmann, 2nd printing, 2009. Web page: http://www.geometricalgebra.net/ C. Perwass, Geometric Algebra with Applications in Engineering. Springer, 2009. D. Hestenes and G. Sobczyk, Clifford Algebra to Geometric Calculus. Kluwer Academic Publishers, 1984. The bible. Not for the faint of heart. Web page: http://geocalc.clas.asu.edu/html/CA_to_GC.html Papers on the Web Elementary. A unified mathematical language for physics and engineering in the 21st century http://www.mrao.cam.ac.uk/~clifford/publications/abstracts/dll_millen.html Synopsis of Geometric Algebra http://geocalc.clas.asu.edu/html/NFMP.html Geometric Algebra: a computational framework for geometrical applications, I & II https://staff.science.uva.nl/l.dorst/clifford/index.html Performance and elegance of five models of 3D Euclidean geometry http://www.staff.science.uu.nl/~kreve101/asci/GAraytracer.pdf Geometric Algebra 2015. Lecture Course by Chris Doran. http://geometry.mrao.cam.ac.uk/2015/10/geometric-algebra-2015/ An algebraic foundation for object-oriented Euclidean geometry www.science.uva.nl/research/ias/ga/publications/itm.ps.gz Conformal model. An Elementary Construction of the Geometric Algebra http://faculty.luther.edu/~macdonal History. On the Evolution of Geometric Algebra and Geometric Calculus http://geocalc.clas.asu.edu/html/Evolution.html A unified mathematical language for physics and engineering in the 21st century http://www.mrao.cam.ac.uk/~clifford/publications/abstracts/dll_millen.html 35 Grassmann's Vision http://geocalc.clas.asu.edu/html/GeoAlg.html#Grassmann Polemics. Oersted Medal Lecture 2002: Reforming the mathematical language of physics http://geocalc.clas.asu.edu/html/Oersted-ReformingTheLanguage.html Spacetime physics with geometric algebra http://geocalc.clas.asu.edu/pdf/SpacetimePhysics.pdf Mathematical Viruses http://geocalc.clas.asu.edu/html/GeoAlg.html Unified Language for Mathematics and Physics http://geocalc.clas.asu.edu/html/GeoCalc.html The inner products of geometric algebra https://staff.science.uva.nl/l.dorst/clifford/index.html Differential Forms in Geometric Calculus http://geocalc.clas.asu.edu/pdf-preAdobe8/DIF_FORM.pdf Calculus. Multivector Calculus, Multivector Functions http://geocalc.clas.asu.edu/html/GeoCalc.html Geometric Calculus http://geocalc.clas.asu.edu/html/GeoCalc.html Spacetime and Electromagnetism. Spacetime Physics with Geometric Algebra http://geocalc.clas.asu.edu/html/Oersted-ReformingTheLanguage.html SpaceTime Calculus http://geocalc.clas.asu.edu/html/STC.html Spacetime algebra as a powerful tool for electromagnetism http://arxiv.org/abs/1411.5002 Geometric Algebra for Electrical and Electronic Engineers http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6876131 Quantum Mechanics. Various papers http://geocalc.clas.asu.edu/html/GAinQM.html Linear Algebra and Geometry. The Design of Linear Algebra and Geometry Universal Geometric Algebra Projective Geometry with Clifford Algebra http://geocalc.clas.asu.edu/html/GeoAlg.html New Tools for Computational Geometry and Rejuvenation of Screw Theory geocalc.clas.asu.edu/pdf/New_Tools_for_Comp_Geom.pdf Conformal model. (Interactively) Exploring the conformal model of 3D Euclidean geometry http://www.science.uva.nl/research/ias/ga/tutorials/CGA/ Conformal Geometry, Euclidean Space and Geometric Algebra http://arxiv.org/abs/cs/0203026 Old Wine in New Bottles: A new algebraic framework for computational geometry http://geocalc.clas.asu.edu/html/ComputationalGeometry.html 36 A Unified Algebraic Framework for Classical Geometry http://geocalc.clas.asu.edu/html/UAFCG.html Lie Groups as Spin Groups http://geocalc.clas.asu.edu/html/GeoAlg.html Geometric Computing in Computer Graphics using Conformal Geometric Algebra Two interesting applications to computer graphics. http://www.gaalop.de/dhilden/. Recent Applications of Conformal Geometric Algebra http://geometry.mrao.cam.ac. uk/2005/01/recent-applications-of-conformal-geometric-algebra/ Includes noneuclidean geometry. Advanced. Clifford algebra, geometric algebra, and applications http://arxiv.org/abs/0907.5356 Applications of Clifford's Geometric Algebra http://arxiv.org/abs/1305.5663 Software GAlgebra. A Python module. Enables symbolic geometric algebra and calculus calculations. https://github.com/brombo/galgebra GAViewer, software and documentation. http://www.geometricalgebra.net/gaviewer_download.html CluCalc. A stand-alone program for visualizing the geometric meaning of elements of Geometric Algebras. http://www.clucalc.info/ Teaching Geometric Algebra with CLU Calc. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.158.7271&rep=rep1& type=pdf Aspects of Geometric Algebra in Euclidean, Projective and Conformal Space. http://www.gaalop.de/dhilden/ Maple Package: CLIFFORD. http://math.tntech.edu/rafal/cliff12/index.html Mathematica Package: Symbolic and Numeric Geometric Algebra. http://library.wolfram.com/infocenter/Conferences/6951/ 37 References [1] C. Doran, A. Lasenby, Geometric Algebra for Physicists. Cambridge University Press, 2003. [2] L. Dorst, D. Fontijne, S. Mann, Geometric Algebra for Computer Science. Morgan Kaufmann, 2nd printing, 2009. [3] L. Dorst, The Inner Products of Geometric Algebra. In L. Dorst, C. Doran, J. Lasenby (Eds), Applications of Geometric Algebra in Computer Science and Engineering. Birkhaüser Boston, 2002, 35-46. (http://www.science.uva. nl/ga/publications/content_publications.html#leo_inner and http://www. science.uva.nl/ga/publications/content_talks.html#inner_talk). [4] F. Dyson, Missed Opportunities, Bull. Am. Math. Soc. 78 (1972), 635-652. [5] D. Fontigne, T. Bouma, L. Dorst, H. Pijls, Geometric Algebra for Subspace Operations., http://xxx.lanl.gov/abs/math.LA/0104102. [6] D. Hestenes, Space-Time Algebra. 2nd Edition, Springer, 2015. [7] D. Hestenes, Point Groups and Space Groups in Geometric Algebra. In Applications of Geometric Algebra in Computer Science and Engineering. Springer, 2002, 3-34 (2002). (http://geocalc.clas.asu.edu/html/SymmetryGroups.html) [8] D. Hestenes, Oersted Medal Lecture 2002: Reforming the Mathematical Language of Physics. Am. J. Phys. 71 (2003), 104–121. (http://geocalc.clas.asu.edu/html/overview.html). [9] D. Hestenes, R. Ziegler, Projective Geometry with Cliord Algebra. Acta Applicandae Mathematicae 23 (1991), 25-63. (geocalc.clas.asu.edu/pdf-preAdobe8/PGwithCA.pdf) [10] D. Hildenbrand, Foundations of Geometric Algebra Computing. Part III, Springer, 2013. [11] A. Lasenby, private communication. [12] J. Lasenby, W.F. Fitzgerald, C. Doran, J. Lasenby, New Geometric Methods for Computer Vision. Int. J. Comput. Vision 26 (1998), 191-213. (http://geometry. mrao.cam.ac.uk/1998/01/new-geometric-methods-for-computer-vision/). [13] H. Li, D. Hestenes, A. Rockwood, Computational Geometry 2: Generalized Homogeneous Coordinates for Computational Geometry. In G. Sommer (Ed.), Geometric Computing with Clifford Algebras. Springer, 2001, 27-59. (http://geocalc.clas.asu.edu/html/ComputationalGeometry.html). [14] A. Macdonald, An Elementary Construction of the Geometric Algebra. Adv. Appl. Cliff. Alg. 12 (2002), 1-6. (Improved version: http://faculty.luther.edu/~macdonal). [15] F. A. McRobie and J. Lasenby, Simo-Vu Quoc Rods using Clifford Algebra. Int. J. Numer. Meth. Eng. 45 (1999), 377-398. [16] For Rodrigues' rotation formula see, e.g., https://en.wikipedia.org/wiki/Rodrigues'_rotation_formula. [17] S. Altmann, Rotations, Quaternions, and Double Groups. Oxford University Press, 1986. [18] C. C. Silvaa and R. de Andrade Marti, Polar and axial vectors versus quaternions. Am. J. Phys. 70 (2002), 958-963.