Errata -- Reverse Chronological Order

Those errata in bold correspond to Major Corrections; those marked with '*' correspond to Minor Corrections, and those that are unmarked correspond to Typos.

This is the bitmap symbol version of this page - not all browsers support all standard html symbols (older versions of Internet Explorer, for example). If you think that this symbol "" does NOT look like a square, you may want to view normal version.


  • *Pg 162, line 7: subscript should be l-k. [20090104 ORSL]

  • *Pg 425, (14.12): Errata correction! V.U should be V_|U. Add: "This equation is translation-covariant and holds at x = o, so it is valid everywhere". [20081214 AC]
  • Pg 462, caption figure 15.3: The period '.' at the end of the caption is missing. [20081214]
  • *Pg 485, exercise 5, Change exp(-o^t/2) to exp(o^t), to be in line with major erratum about pg 475, line -3. [20081214]

  • Pg 489, figure caption: remove the sentence 'Converting a.'. [20081211]

  • *Pg 47, Table 2.3, line -5: Change k-vectors of any grade to multivectors. [20081018 JS]
  • *Pg 53, exercise 7: insert "precisely" after "contains". [20081018 SP]
  • *Pg 134, line -11: The table entry for 'Point and Plane' in 'Space' should have a minus, not a plus. [20081018 JS]
  • *Pg 144, line 9: Change "each element" to "each invertible element". [20081018 JS]
  • Pg 153, below (6.17): Change "that a right-multiplication" to "that right-multiplication". [20081018 JS]
  • Pg 196, 2nd line of (7.22): insert 2 in front of BxB. [20081018 JS]
  • Pg 200, line -7: change n 2 n to n 2 2(n-1) . [20081018 JS]
  • Pg 250, line 12: Change "algebraic algebra" to "geometric algebra". [20081018 JS]
  • Pg 355, line -7: Change "a degenerate" to "an indefinite". [20081018 JS]

  • *Pg 82, Figure 3.5: In figure (a) change { a* = A } to { A }, and { a } to { a = A* }. In figure (b) change { A* = -a } to { -a }, and { A } to { A = (-a)* }. In the caption change 'of a vector a is the bivector A' to 'of a bivector A is the vector a' and change 'The dual of ' to 'The vector whose dual is'. [20080820 PH]

  • **Pg 137, structural exercise 2: The target formulas are wrong, and the exercise should be cancelled. [20080712 GG]
  • *Pg 151, middle: change |k -l +2| to |k -l| +2. [20080712 WKW]
  • Pg 171, line -4: change 'to in' to 'to'. [20080712 BT]
  • Pg 196, line 9: change `of dimensionality 0 mod 4' to `whose dimensionality mod 4 equals 0' [20080712 AH]
  • **Pg 222, equation (8.8): Implicitly, we have used that I is constant in step 2 (where we use (exp(-Iφ/2))' = (-Iφ/2)' exp(-Iφ/2) ), although the text claims that both I and φ can vary. The proper of the derivative of the versor R(τ) does result in a commutation product with a bivector. But this bivector is not ∂τ[Iφ], it is -2∂τ[R(τ)]R(τ)˜, which evaluates to Iτ[φ]+∂τ[I](exp(Iφ)-1)/I. (Use ∂τ[exp(-Iφ/2)] = ∂τ[cos(φ/2)-Isin(φ/2)] = -Iτ[φ/2]exp(-Iφ/2) - ∂τ[I]sin(φ/2).) [20080712 PJ]
  • Pg 277, eq(11.2): change index of second α to i. [20080712 BT]
  • **Pg 329, (12.3), and Table 12.1: In earlier errata, we tried to bring our notation in agreement with at least one standard on the signs of Plücker coordinates, namely the often referred [57]. This is possible, but since [57] uses a counterintuitive characterization of the direction of the line PQ (namely from Q to P), the changes relative to our text are rather ubiquitous. For this edition of the book, the simplest is to distinguish between the 'Shoemake Plücker direction' a = p-q, and the 'GA direction' u = q-p = -a. The moment vector m = p × q can be defined as m = (p ^ q)*. With that, the line of (12.2) would be represented in [57] as -{a,m}, so that is the change to (12.3). Though the line coordinates are homogeneous, an oriented geometry should process this sign consistently. But Table 12.1 is about the line {a,m}, oriented from Q to P, since [57] is. Our great thanks to Allan Cortzen for helping to sort out these annoying signs! [20080712 AC]
  • ** Pg 332, line -14 and corresponding line in Table 12.1 'Plane through line and point': change -m^p to m^p. [20080712 AC]
  • Pg 336, line 5: change '163 = 4,096' to '2×162=512'. [20080712 AH]
  • Pg 587, line 10: One can construct many more null vectors (in fact, 2pq). Change 'min(p,q) null vectors' to 'at most min(p,q) null vectors for a basis'. [20080712 GG]

  • Pg 79, line 7: remove extra bracket after C. [20080326 RM]
  • Pg 95, line -5: Change 'Suppose you want to detect red, green, blue LEDs' to 'Suppose you want to detect the light emitted by red, green, blue LEDs' [20080326 AC]
  • *Pg 130, the example: the normalization of A is wrong, it should not be ½ but 1/√3. This should be propagated through the example, changing all factors of ½. In the final line of (5.9), the factor pulled out is then -√(2/3), and the last paragraph of the example should give the angle as asin(-√(2/3)). [20080326 GG]
  • *Pg 133, line -8: change "linear transformations" to "invertible linear transformations". [20080326 GG]
  • **Pg 237, penultimate entry Table 8.2: should be X(X-1*A) = P[-X-1 A X-1]. [20080326 RV]
  • *Pg 266, line 0: Add if (ha == (mv::Float)0.0) return _rotor((mv::Float)1.0); to the code example at the top of the page, so before the comment line // return rotor: [20080326 AC]
  • *Pg 266, line 13: The code comment // return src * exp(alpha * log(dst * inverse(src))); should read // return src * exp(alpha * log(inverse(src) * dst));. [20080326 AC]
  • *Pg 286, section 11.5.3: This would be a good place to be more precise about the definition of weight. Write the direction A of a finite k-flat X in terms of a chosen pseudoscalar Ik for its subspace as A = ω Ik , then ω is the weight of the blade. For an infinite (k+1)-blade X, choose a pseudoscalar Ik+1 and write X = ω Ik+1, then ω is the weight of the blade. In both cases, the sign of the weight is determined by the chosen orientation of the pseudoscalar, but its magnitude is geometrically objective. It is simple to prove from the definition that a weight is translation invariant. Note also that unit weight and unit norm are different concepts; for the point representation e0+p has weight 1, but norm √(e02+p2) [20080326 AC]
  • Pg 291, table 11.3 caption line 2: change "a a finite" to "a finite". [20080326 RV]
  • Pg 295, line 2: replace a^u by p^u and replace b^v by q^v. [20080326]
  • *Pg 296, figure 11.7(a): swap the signs in part (a) of the figure only. Because of the counter-intuitive signs resulting in (a) and (c), AC has the sensible suggestion to redefine the relative orientation of A to B as BA(so that the orientator is written first, the orientatee last). [20080326 AC]
  • *Pg 297, top: An additional remark could be made: Relative to a join of weight 1, and using its orientation as standard, one has pq = (p^q)* = ±(q-p). [20080326 AC]
  • *Pg 318, exercise 12: in (11.20) and the text, the 6-pointed stars (suggesting full homogeneous duality) should be 5-pointed stars (Euclidean duality relative to the unit weight direction blade I2 of I). Also, the final duality in (10.20) should be replaced by division by I2. [20080326 AC]
  • Pg 325, figure 11.15: The text inside the screenshot can be improved from The four red points represent the camera and span the imaging plane. to Three red points span the imaging plane and the fourth represents the camera. [20080326 AC]
  • *Pg 349, lines 14, 15, 16, 17: Change the four lines following // compute images of basis vectors to
    point imageOfE1 = _point(R * e1 * Ri + (T ^ (e0 << (R * e1 * Ri))));
    point imageOfE2 = _point(R * e2 * Ri + (T ^ (e0 << (R * e2 * Ri))));
    point imageOfE3 = _point(R * e3 * Ri + (T ^ (e0 << (R * e3 * Ri))));
    point imageOfE0 = _point(R * e0 * Ri + (T ^ (e0 << (R * e0 * Ri))));
    This change has no effect on the actual outcome of the computation as (T ^ (e0 << (R * ei * Ri)))) is zero for e1, e2, e3 and e0 is not affected by R. [20080326 AC]
  • *Pg 396, line -4: The code comment // return src * exp(alpha * log(dst * inverse(src))); should read // return src * exp(alpha * log(inverse(src) * dst));. [20080326 AC]
  • *Pg 425, line 13: replace "on the sum" by "on the squared sum". [20080326 AC]
  • *Pg 425, line 18: replace "with that" by "with the square of that". [20080326 AC]
  • *Pg 425, line 16: Change o_|uv to uv. Remove the sentence "By translation covariance...x. [20080326 AC]
  • Pg 440, line 7: A more precise formulation could be added: B* ^ A* is a blade of lowest grade orthogonal to every (non-scalar) factor in A and B. [20080326 AC]
  • *Pg 445, line 11: change o^(c_|E) to o^(c_|E)ˆ. [20080326 AC]
  • *Pg 446, line 7: insert: Formula (15.2) can be interpreted as the dual of Σ relative to the carrier of dimension k; therefore the expression equals (c-½ρ2∞) (-1)k, which is a dual sphere containing Σ. [20080326 AC]
  • Pg 462, caption figure 15.3: change "circle C" to "circle K", and "dual sphere s" to "dual sphere σ = Σ*". [20080326 RV]
  • *Pg 494 line 8: The code comment // return src * exp(alpha * log(dst * inverse(src))); should read // return src * exp(alpha * log(inverse(src) * dst));. [20080326 AC]
  • Pg 605, line -6 about projection: remove inverse from first B. [20080326 RV]

  • Pg 345, First equation: The last term should be (a^m'C)m'A ^ m'B. [20080131 RNG]
  • Pg 349, line 4: Should say "would be implemented as". [20080131 RNG]
  • Pg 378, line 17: Should say "from the intersection point". [20080131 RNG]
  • Pg 431, line 2: Should say "of the circles". [20080131 RNG]
  • Pg 451, line 11: Should say "This is actually a tangent vector". [20080131 RNG]
  • Pg 473, first line of 16.3.4: should say "transformations". [20080131 RNG]
  • Pg 488, line 4: should say "to the identity". [20080131 RNG]
  • Pg 489, figure caption: should say "to conformal versors". [20080131 RNG]
  • Pg 490, lines 5,6: should say "we set". [20080131 RNG]
  • Pg 529, line 9: should say "whether a multivector". [20080131 RNG]
  • Pg 575, 23.5.2, line 6: should say "reflections and refractions". [20080131 RNG]
  • Pg 581, 23.7, line 6: should say "beneficial to represent". [20080131 RNG]
  • Pg 587, A.5, line 1: should say "in general metrics". [20080131 RNG]
  • Pg 600, last proof, line 3: Delete the ')' [20080131 RNG]
  • Pg 600, last proof, line 4: Delete the ')' just before second Bl [20080131 RNG]

  • Pg 92, first line of exercise 9: should say "right angle" not "straight angle". [20080125 RNG]
  • Pg 120, first line: "through" should be "though". [20080125 RNG]
  • Pg 143, last line of 6.1.2: should say "that they can be retrieved separately" [20080125 RNG]
  • Pg 182, 7.3.5, next to last paragraph: should say "This is explored in structural exercise 10" [20080125 RNG]

  • Pg 62, last paragraph: Citation to [46] should be to [45]. [20080110]
  • Pg 136, last bullet: Citation to [10] should be to [8]. [20080110]
  • Pg 202: Citation [49] should be [52]. [20080110]
  • Pg 231: Citation [28] should be [26]. [20080110]
  • Pg 264, last paragraph of 10.5: Citation [24] should be [23]. [20080110]
  • Pg 359, first line: Citation [10] should be [9]. [20080110]
  • Pg 483: Citation [17] should be [15]. [20080110]
  • Pg 507: Citation [51] should be [49]. [20080110]
  • Pg 542: Citation [44] should be [43]. [20080110]

  • Pg 236, Section 8.7.2, first sentence Citation to [38] should be to [36]. [20080108 DD]
  • Pg 239, second paragraph Citation to [37] should be to [36]. [20080108 DD]
  • Pg 590, section B.1.2: Citation to [34] should be to [33]; citation to [17] should be to [15]. [20080108 DD]
  • Pg 591, section B.1.4, next to last paragraph: Citation to [17] should be to [15]. [20080108 DD]
  • Pg 591, section B.1.4, last paragraph: Citation to [19] should be to [17]. [20080108 DD]

  • Pg 450, line 6: Change 1/||A||2 to A-2. [20080103 AC]
  • Pg 452, Fig 15.11: Squared norm of line should be -u2. [20080103 AC]
  • Pg 453, line 8: Change 'plane u' to 'dual plane u'. [20080103 AC]
  • Pg 454, line 21: Change uq to u-q (to avoid the suggestion that this is a covariant expression). By the same token, you could covariantly write u = Tu-o[o] a few lines lower. [20080103 AC]
  • Pg 456, last paragraph: Note that a flat point x^ is normalized when its norm is 1, and a point x is normalized when its weight is 1 (so that -∞_|x = 1). [20080103 AC]
  • *Pg 457, middle: Drop the sentence 'It automatically ... and r'. [20080103 AC]
  • Pg 458, last line of 15.5.3: Change directed to signed. [20080103 AC]
  • Pg 459, middle (just above 'Either way'): Change penultimate minus to a plus. [20080103 AC]
  • *Pg 459, last 4 lines: Swap φ and ψ (18 times!). [20080103 AC]
  • *Pg 466, line 8: E should be transformed according to σ Ê σ-1, and the result is therefore simply E. [20080103 AC]
  • **Pg 475, line -3: The answer for this transversion over t should be 1 + ot = eot. This correction should be propagated through the text. It changes the last line of Table 16.1 (remove the '/2' twice), and the last column of Table 16.2 (replace t by 2t in this column only). [20080103 AC]
  • Pg 477, Table 16.2, in transversion column: Change e to E. [20080103 AC]
  • Pg 480, line 10: The translation matrix should have 1s on its diagonal. [20080103 AC]
  • Pg 480, line 9: Change inversion to conjugated inversion. [20080103 AC]

  • Pg 313, line -13: remove -q2 from the numerator, change denominator to e02-q2 (and realize that formula assumes e02q2 to be valid). [20071130 AC]
  • Pg 373, figure 13.2: Swap the labels of p and q. [20071130 AC]
  • Pg 374, halfway: Change p-q to q-p. [20071130 AC]
  • Pg 376, line 10: Change ||X||2 > 0 to ||X||2 < 0. [20071130 AC]
  • Pg 400, line 7: Change Ak to An-k (twice), and the six-pointed star to a five-pointed star. [20071130 AC]
  • Pg 403, line -7: Change grade to dimension. [20071130 AC]
  • Pg 405, line -11: Change This is a vector to This may be pictured as a vector. [20071130 AC]
  • Pg 405, line -7: Change length to signed length. [20071130 AC]
  • **Pg 407, table 14.1: On top of other errors already corrected earlier, the entry (dual round, squared size) should have the plus changed to minus. [20071130 AC]
  • *Pg 407-409: We should have defined more clearly what we mean by weight and orientation as the split of the geometrical concept direction into a scalar and a unit blade element. In the caption of Table 14.2, weight is defined in a manner that makes it always positive -- but this then presumes that the orientation will pick up the sign. AC clarifies the issue raised in the second paragraph of page 409: [20071130 AC]
  • Pg 418, line -3: Change two spheres to two dual spheres. [20071130 AC]
  • Pg 419, line 15: Insert 2 Σi to the right of the second =. [20071130 AC]
  • Pg 419, line -6: Change Γ to Γ'. [20071130 AC]
  • Pg 439, line -2: Change of the remaining to of one of the remaining. [20071130 AC]
  • Pg 441, line 3: Swap ½ and -½. [20071130 AC]
  • Pg 441, line 4: Change radius to squared radius. [20071130 AC]
  • *Pg 446, (15.3) and just after (15.5): Change (-1)n to (-1)k, where k is the dimension of the carrier. [20071130 AC]
  • *Pg 594, step 2: It was pointed out to us by GG that step 2 of this proof is logically flawed, since it assumes a ^ Ck-1 without first proving this from the premise a ^ Ck. He provided total rewrite of these steps of the proof, but a local fix was given by AC:
    [20071130 GG, AC]

  • Pg 90, line 1 and 3 of (3.32): add a ^ before the second ellipsis in the first line, remove ^bi... in the third line. [20071127 GG]
  • Pg 103, line -4: change Projection to Parallel Projection. [20071127 GG]
  • Pg 105, item 4: change Reflections to Point Reflections. [20071127 GG]
  • **Pg 109, line 4: Only for a Euclidean metric with an orthonormal basis is the matrix of the adjoint equal to the transpose; for other metrics, a metric tensor needs to be included with the transpose. This fact makes the final statement of this paragraph all the more valid. [20071127 GG]
  • Pg 109, line 4: remove first comma from equation. [20071127 GG]
  • Pg 114, line -2: change jth to ith. [20071127 GG]
  • Pg 114, line -6: change (i,j) to (j,i). [20071127 GG]
  • Pg 115, line 4: change first bj to bj. [20071127 GG]
  • Pg 116, line 3: change index i-1 to i=1. [20071127 GG]
  • *Pg 116, line 4: One should avoid counting blades like b1^b2 and b2^b1 twice, for instance by an ordering demand on the indices such as i<j. [20071127 GG]
  • *Pg 119, exercise 9: The metric needs to be non-degenerate, or the reciprocal may not exist. [20071127 AC]
  • *Pg 225, bottom derivation: AC reports a more compact derivation:
    limε→0 ((xa)-1-x-1)/ε = limε→0 -x-1 ((xa)-x)/ε) (xa)-1 = -x-1 a x-1. [20071127 AC]
  • *Pg 256, line 2 to 5: Although the resulting condition 1/p+1/q+1/r>1 is correct, the polar triangle argument we are using here is flawed. Following a hint from AC, we are studying Coxeter to summarize the proper derivation. [20071127 AC]
  • *Pg 339, line 7: Replace matrix entry [f-1] by -[f-1]. [20071127 AC]
  • **Pg 589, equation (B.1): first B_|A on last line should be A|_B [20071127 PJK]

  • Pg 337, line 6: drop of from the support of vector. [20071122 PJK]
  • Pg 358, line -13: change in literature to in the literature. [20071122 PJK]
  • Pg 371, middle: drop one the from We substitute the the. [20071122 PJK]
  • Pg 401, line above (14.4): Change this results to these results. [20071122 PJK]
  • Pg 439, caption Figure 15.1: Second meet should be plunge, second plunge should be meet. [20071122 PJK]

  • *Pg 106, just below equation: Change 'By induction...follows' to 'Similar steps can be used to provide an inductive proof of the general result for blades of (3.26).' [20071029 GG]

  • Pg 78, line 3: change first B^ to A^. [20071027 HT]
  • Pg 90, middle equation: append a subscript j to each of the three Σs. [20071027 GG]
  • Pg 90, middle: change 'like [16]' to 'like [15]'. [20071027 GG]
  • Pg 90, line 2: change m-1 to n-1. [20071027 GG]
  • Pg 300, line -4: change p1 and q1 to p' and q', respectively. [20071027 PJK]
  • Pg 308, line 11: change 'locus of the equation' to 'locus of all points x satisfying the equation'. [20071027 PJK]
  • Pg 309, line -12: change 'demand' to 'demanding'. [20071027 PJK]
  • Pg 314, line -3: change 'trough' to 'through'. [20071027 PJK]
  • Pg 594, line below (B.6): remove '=0'. [20071027 HT]
  • Pg 595, middle of proof part 4: change 'by (B.6)' to 'by (B.7)'. [20071027 HT]

  • **Pg 472, line 6: replace by Tt  R = R TR-1tR. [20071019 AH]

  • Pg 50, line -8: change Λ2 Rn to Λ Rn. [20071016 GG]
  • Pg 73, line 19-21: change "(k-l)-blade" to "(l-k)-blade" and change Λk-l Rn to Λl-k Rn. [20071016 GG]
  • Pg 74, line 6: change "another vector" to "additional vectors". [20071016 GG]
  • Pg 84, line -8: change "x^B=0" to "x^_|B=0". [20071016 GG]
  • Pg 589, section B.1.1: it is helpful to write Ak for A and Bl for B. [20071016 GG]

  • *Pg 339, line -10: replace e0-1 - f by e0-1 - f-1. [20071011 AC]
  • *Pg 346, line -10: replace R-1B by RAB (twice). [20071011 AC]
  • Pg 363, Table 13.2, last column: the entries should be about p, π, σ and σ, respectively, rather than all about π. [20071011 AC]
  • Pg 372, line -5: change ||Ak||2 to -||Ak||2. [20071011 AC]

  • Pg 29, line 3: change products to product. [20071008 MM]
  • Pg 40, line -2: delete more than. [20071008 MM]
  • Pg 41, line 2,3: change to line L and line M. [20071008 MM]
  • Pg 42, par 5, line 3: change is that to conveys that. [20071008 MM]
  • Pg 47, line 5: change bold to bold capital. [20071008 MM]
  • Pg 47, Table 2.3, line A,B,etc: delete "typically not a vector". [20071008 MM]
  • *Pg 52, drill 4: change support vector to position vector (twice). [20071008 MM]
  • Pg 61, line 5: change to v(p) = V(p)/ ||V(p)||. [20071008 MM]
  • *Pg 222, last 2 lines: The intended bold notation ω of the angular velocity vector was not conveyed in printing. It should be used throughout on the last line, and replace the first two ω symbols on the line before. [20071008 PJK]
  • Pg 233, Outer Product: change "is can" to "can". [20071008 PJK]
  • Pg 250, line -9: change "so by seperating...in" to "thereby separating...into" [20071008 PJK]
  • Pg 287, line -12: change X to x. [20071008 PJK]

  • Pg 304, line 3: change X to X. [20070915]
  • **Pg 305, lines 10, 17 for X*: change e0-1 to -e0-1 [20070915 AC]
  • *Pg 331, line -7: Change direction vector to minus the usual direction vector. [20070915 AC]
  • Pg 333, line -6: Divide the RHS by ||a1×a2|| to actually get (11.20). [20070915 AC]
  • ** Pg 335, Table 12.2, entry (Affine,Plane): Change -[t]T to -[t]Tdet(f)[f]-T, and change 1 (element [4,4]) to det(f). [20070915 AC]

  • *Pg 135, halfway: It is not true that adj(f)-1[J-1] = f[J]-1. Therefore this particular derivation of the structure preservation of the meet is incorrect. A more direct derivation is to observe that the defining equations (5.1) and (5.2) are also valid, by outermorphism, for f[A], f[B], f[M], f[J]. Therefore the f-transformed part of (5.6) is valid too, so f[AB] = f[A]∩f[B], with f[J] substituting for J. [20070911 AC]
  • Pg 196, 2nd line of (7.22): change '1' to 'x'. [20070911 PJK]
  • *Pg 255, line 20: '16 equivalent' should be '8 equivalent'. [20070911 AC]
  • *Pg 255, last line: There is a better way to permit the possibilities Rp = ± 1 (in the second paragraph), namely by requiring R2p = 1. This avoids some subtle problems in the 3D equation, which is then replaced by (ab)2p=(bc)2q=(ca)2r=1. [20070911 AC, personal communication]

  • Pg 82, (3.24): strictly, the condition A,B ^ I should be A ^ I, and applies only to the second duality. [20070904]
  • Pg 262, line -10: in "Optimal scaling σij em", drop em. [20070904 AC]
  • Pg 262, (10.16) and (10.19): last R should have an index j. [20070904 AC]
  • Pg 279, line 12: change (p-q) to (q-p). [20070904 AC]
  • Pg 281, line 11: change ^ to _|. [20070904 AC]
  • **Pg 291, Table 11.3: entry Support of Finite Flat should have denominator e0-1_|X. [20070904 AC]
  • Pg 295, line 13: change orientations (v^u)* to directions (u^v)*. [20070904 AC]
  • Pg 605, line -7: the condition A,B ^ I should be A ^ I. [20070904 AC]

  • Pg 129, just above (5.7): change "the meet is the dual of" to "the dual meet is". [20070830 PJK]
  • Pg 180, line -4: change siding to sliding. [20070830 PJK]
  • Pg 186, middle of page, "So even": change eB+eA to eBeA. [20070830 PJK]

  • *Pg 315, Fig 11.12: mark the intersection of the green line and the line L-* with a red point. [20070829]

  • *Pg 5, Fig 1.2, line 6: replace 'e2' by 'n' and add comment "n is a direction vector". [20070828 MM]
  • *Pg 5, Fig 1.2: add comment "ni represents the point at infinity". [20070828 MM]
  • Pg 6, Fig 1.3: denote center of sphere as c. [20070828 MM]
  • Pg 7, item Intersections: change πL/π to -πL/π. [20070828 MM]
  • Pg 14, line -4: change split in to split into. [20070828 MM]
  • Pg 17, line 2: change have had to have. [20070828 MM]

  • Pg 253, figure 10.3: remove spurious symbol t. [20070823]

  • Pg 207, bottom line: x2 should be y2 [20070822 AC]
  • **Pg 217, (8.3): coefficient 1/4 should be 1/3!. [20070822 AC]
  • Pg 223, last formulas: the division should be interpreted as 'right division'. [20070822 AC]
  • Pg 226, third formula: should be -x-1P[a]x-1. [20070822 AC]
  • Pg 226: ∂x(x^A) should be ∂x(x_|A). [20070822 AC]
  • Pg 228, (8.10): drop first φ from this line. [20070822 AC]
  • Pg 231, last formula: ∂x^F(x) should be ∂x_|F(x). [20070822 AC]
  • Pg 239, first line: reverse the order of the arguments of ^. [20070822 AC]
  • Pg 252, line 4: U is a unit bivector, v a unit vector. [20070822 AC]
  • **Pg 253, (10.11): exchange a and b, and include a minus sign in all three definitions. This gives positive angles for a positive orientation of a^b^c. [20070822 AC]
  • **Pg 254, first equation: swap a and c. [20070822 AC]

  • Pg 135, line 11: second AB should be AB [20070813 AC]
  • *Pg 157, middle derivation: from line 2 onwards, a factor ½ is missing, and line 3 should have a minus on the term AaxA-1. [20070813 AC]

  • Pg 117, formula for f[A_|B]: the ^ should be _|, see (4.13). [20070810 PJK]

  • *Pg 69, line 6: change "This involves" to "In 3-D, this involves" [20070808 AC]
  • *Pg 70, case 3: blades can be disjoint and still have a well-defined cosine measure [20070808 AC]. Replace the text of item 3 by: The sentence that follows in the main text: "Reinterpreting...common)." should be replaced by:
  • Pg 610, reference [21]: change Images to Views [20070808]

  • Pg 453, line 12: Change "instead to" to "instead of". [20070726]

  • Pg 3, line -7, change n to N. [20070723]
  • *Pg 203, exercise 8, change 2π/3 to -2π/3. [20070723]
  • *Pg 418, caption Fig 14.8: change "two times" and "twice" to "half". [20070723]

  • Pg 460, drill 2: Change Σ to K. [20070718]

  • **Pg 407, Table 14.1: Some annoying sign errors crept into this table and its associated derivations. You may download a new copy of the table with all these corrections incorporated. [20070717] [20070401]

  • Pg xxii, caption figure 11.5: replace p by x. [20070716]
  • Pg 388, drill 6: Replace representation by direct representation. [20070716]
  • *Pg 389, exercise 5: Show the formula, but there is no need to adapt the algorithm. [20070716]
  • *Pg 389, drill 11: This is a non-sensical problem; cancel it. [20070716]
  • ** Pg 389, structural exercise 1: A p is missing on the right hand side. [20070716]

  • *Pg 316, exercise 4: replace k+1 by k-1. [20070715]

  • *Pg 53, exercise 7: this is not really 'harder', but A should obviously be assumed to be non-zero. [20070713]

  • *Pg 427, drill 5: The carrier is only properly defined in Section 15.2.2. [20070712]
  • Pg 460, drills 1 and 2: Change the Chapter to Chapter, twice. [20070712]

  • Pg 217, second last sentence in paragraph after (8.4): the 'You' should be 'you'. [20070711]

  • Pg xix, C.1: change Peometric to Geometric. [20070525 EH]

  • Pg 148, distributivity: change (A+B)C = AB+BC to (A+B)C = AC + BC. [20070524 BJC]

  • Pg 74, line 4: change "inner product of ... and" to "contraction of ... onto". [20070521 PdB]

  • Pg 24, property (7) has one β too many on the rhs. [20070510 JM]

  • **Pg 49, equation (2.10): Is wrong, it should count all contributions that make up the intended grade, as in
      <A^B>k = Σki=0 <A>i ^<B>k-i.
    We do not actually use this Grassmann algebra equation, so this error does not affect the mathematics in the remainder of the text. [20070507 RP]

  • **Pg 49, first equation: both indices should run from 0 to n. [20070411 AH]
  • Pg 51, the basis in Drill 2.12.1.1 lacks e1^e2. [20070411 AH]
  • Pg 69, second line below the main derivation should have a^a instead of a^b. [20070411 AH]

  • Pg xx, caption of figure 3.3: we mean a 2-blade. [20070401]
  • Pg xxviii: the section numbers of the list of programming examples are in regular font, instead of bold. [20070401]
  • Pg xxi, caption of figure 6.1: we mean Non-invertibility. [20070401]
  • Pg 40, Figure 2.7: the long blue arrow, and its label, should be red. [20070401]
  • Pg 52, exercise 3, drop comma. [20070401]
  • Pg 73, line 20: change "mapping" to "bilinear mapping". [200080326 AC]
  • Pg 78, last in sequence of formulas on second and third lines is missing a (. [20070401]
  • Pg 91, the basis in Drill 3.10.1.1 lacks e1^e2. [20070401]
  • *Pg 92, exercise 7: show this in a 1-dimensional Euclidean space. [20070401]
  • Pg 92, last line of exercise 3: remove the. [20070401]
  • *Pg 112, second to last paragraph: the formula involves [f]-T, the inverse of the transpose. We should have introduced this nonstandard notation explicitly. [20070401]
  • Pg 118, structural exercise 4: put square brackets around the arguments of f (twice). [20070401]
  • *Pg 118, exercise 4: hand calculations are simpler if you use instead f[b] = +3a - 5b. [20070401]
  • *Pg 119, exercise 7: It is better to redefine g by including a reversion of its argument through A * g[A˜]. [20070401]
  • *Pg 119, exercise 13: The mapping f is a non-uniform scaling rather than a shear. Do the exercise, then change one e1 into e2 to get a proper shear, and do it again. [20070401]
  • *Pg 129, the paragraph before (5.6) contains an error, for A'-1 is not generally equal to B_|J-1. Replace this paragraph by the following continuation of the derivation:
  • *Pg 130: the last argument in the second line of the derivation should be (e2+e3) rather than e3, though this does not affect the final outcome. [20070401]
  • *Pg 137, exercise 1, the second equation should have A rather than its inverse. [20070401]
  • *Pg 137, exercise 3, change "magnitude" to read "magnitude of their meet". [20070401]
  • Pg 160, the basis in Drill 6.6.1.2 lacks e1^e2. [20070401]
  • **Pg 190, the entry for row A and column Y should have an extra (-1)n-1. [20070401]
  • Pg 240, last line: change that to than. [20070401]
  • Pg 241, exercise 4: change absolute value bars to (double) norm bars. [20070401]
  • Pg 258, line -6: add "and additionally make (10.14) valid for the 2nd and 3rd quadrant" after "stability". However, you may then not get the principal value, so an additional test is required to bring the angle in the range [-π, π]. [200080326 AC]
  • *Pg 293, caption figure 11.5: replace p by x (twice). [20070401]
  • *Pg 314, bottom line: replace p by x (twice). [20070401]
  • *Pg 318, exercise 17 is flawed, though the message stands. Even for the translation of a point x, one needs to use a non-versor-like sandwiching T x T. Show that. [20070401]
  • Pg 331, just above 3.Lines: its coordinate should be its coordinates. [20070401]
  • *Pg 333, line 3: The signs of Π ∩ L and L ∩ Π are identical (see Table 5.1). The simplest way to fix this is to put a minus in front of Π ∩ L. As a consequence, the following paragraph should stop after the phrase "It corresponds to the result in Table 12.1" (and we apologize to [60]). [20070401 AC]
  • *Pg 338, line -8: remove "inner and", and replace "both spanning and intersection behave" by "spanning behaves". [20070401 AC]
  • *Pg 338, line -2: the direction formula should be D = e0-1_|(e0^(f-1_|X)) and the support point is at (e0-1_|e0^X)/D. [20070401 AC]
  • **Pg 408, line -9: Remove "but the formula then computes -ρ2" [20070401]
  • **Pg 409, line -8: include minus sign in X/(∞_|X) [20070401]
  • *Pg 461, exercise 4: There are two formula errors and a flaw in this exercise. Either drop it completely, or make spotting those the actual exercise. Do not use the formula in applications. [20070401]
  • *Pg 483 drill 3: Replace e1^e2 by e1+e2. [20070401]
  • *Pg 485 structural exercise 4: not true for general flats. Replace flats by flats through the origin. [20070401]
  • Pg 485, exercise 5, Change the second origin to centers. [20070401]
  • *Pg 485, structural exercise 5: Change the last a to its inverse a-1. [20070401]
  • Pg 575, at the bottom: The code comment reads pix_color. Replace by pixelColor. [20070401]
  • Pg 578, halfway: the code comment reads 'fpt'2. Replace by 'fpt2'. [20070401]