No copies of The Geometry Toolbox are left! It has been replaced by

Practical Linear Algebra - A Geometry Toolbox


The Geometry Toolbox
for Graphics and Modeling

by Gerald Farin & Dianne Hansford

published by AK Peters, Ltd. 1998
288 pages, ISBN: 1-56881-074-1


Please email suggestions or corrections to If you find an error, we'll give you credit by including your name/link in this Errata page!

The errata entries are ordered by page number and the date that each correction was added is given in brackets as [mo/day/yr].

Revised May 28, 2004

  • Several times, the Geometry Center, University of Minnesota, is incorrectly said to be in Michigan.   [9/30/98]
    Found by Tim Rowley, Brown Univ. and Nick Sapidis, National Technical Univ. of Athens

  • p. xiv: The Geometry Toolbox web site should read But if you're here, you probably figured it out!   [10/5/98]

  • p. 33, above (3.2): v=p-q should be replaced by v=q-p.    [12/07/01]
    Found by Mike McPhail.

  • p. 37, after example 3.3: the two intercepts are -c/b for the e2-axis and -c/a for the e1-axis.    [10/3/01]
    Found by Orion Culver.

  • p. 37, Section 3.4: The substitutions after the second displayed equation should be {\hat a} = -a/b and {\hat b}= -c/b.    [10/3/01]
    Found by Orion Culver.

  • p. 40, Section 3.6: In the equation for d, the x1 and x2 terms should be r1 and r2. Likewise on p. 41, the {\bf x} should be {\bf r}. Ditto for equation (3.11).

  • p. 51, Exercise 3.7: The solution to this problem states that the two lines are parallel. In fact, they are identical! Hence no intersection.   [9/18/01]
    Found by Cem Cebenyan.

  • p. 55, Section 4.2: The first sentence should contain [e_1,e_2] rather than [a_1,a_2]. [5/28/04]

  • p. 61: Last paragraph of Scaling section is a bit unclear. Figure 4.2 illustrates a scaling that changes area. By chance, Figure 4.3 does not change area, but it does change shape. [5/28/04]

  • p. 61, eq. (4.15): that is a rotation, not a reflection. A reflection is characterized by having determinant equal to -1. Later, on p. 63, the sentence mentioning a reflection about x_2=0 is incorrect. The first equation of this Section is a reflection about x_1=0. [5/28/04]

  • p. 67, bottom of page: Parallel projection are charcterized by the fact that all vectors are projected in a parallel direction (not the same). Continuing onto p. 68, the example there is not a parallel projection. Parallel projections must be idempotent: AA=A. So it is necessary but not sufficient for a projection matrix to be of the form [a, ca]. [5/28/04]

  • p. 81, after eq. (5.5): the column vector b should be b_1, b_2. [10/12/03]
    Found by Géza Kurczveil.

  • p. 90, Example 5.4: The right hand side after the second shear should have a +2 rather than a -2. This matrix element a_{2,1} should be positive in the next two equations also.   [12/1/98]
    Found by Senthilkumar Manickavasagam, Media 100.

  • p. 110: The reference to *Sketch 4.7* should read *Figure 4.8*.   [10/5/98]

  • p. 110: In the first sentence, "carried" should be "carried-out".   [3/29/01]

  • p. 111, Section 7.1: Eigenvectors are orthogonal for symmetric matrices, not for all matrices. [05/28/04]

  • p. 111: In the first equation of Section 7.2, the right-hand-side should be lambda*I*r.   [3/29/01] 

  • p. 113: Definition of r_2 is not incorrect, but to simplify matters, it would be better to pick r_2 = [-c, c]^T. With the current choice, A would be the product of reflections as well as rotations. (This is the discussion of Section 7.5.) This is evident in Example 7.3 where R is not a rotation, but a reflection and a rotation. By choosing r_2 as above, R will be a rotation. [05/28/04]

  • p. 114, lines 3 and 4: There should be vectors r_1 and r_2 in the two linear systems.   [9/6/00]
    Found by Pong Hon Keat, Singapore

  • p. 116, Example 7.2: The column vector with elements v_1, v_2 should be the elements of the vector r_1.   [10/5/98]

  • p. 118: Eliminate eq. (7.10); A^T = A. We'll leave A=RDR^T. This syncs with the conic chapter changes! [05/28/04]

  • p. 119, Equation in middle of page, A^nr_1 = \lambda^n r_1: the lambda term should have a subscript of 1. [05/28/04]

  • p. 120: The last two equations on the page should have a right-hand side of scalar c, rather than one. [05/28/04] 

  • p. 121, Last paragraph of Section 7.7: The collinear comment is incorrect. Large differences in the eigenvalues means that the slightest change in an eigenvalue will cause a large change in the shape of the ellipse defined by A^TA. [05/28/04] 

  • p. 122, Example 7.4: The eigenvalue lambda_4 is equal to two rather than three.  [10/5/98]

  • Chapter 9 Conics: The derivation of the general equation of a conic has one fundamental error. The inverse of the desired transformation results from the equations given. Below we detail the necessary changes.   [3/29/01]
    • p. 138: Last sentence should read "Inserting R^Tx ..." rather than "Inserting Rx ...". At this point, we assume that x is the rotated point. In order to satisfy the implicit equation, we must undo the rotation. Recall that that R^T = R^{-1}.
    • p. 138: Equation (9.5) should read x^TRDR^Tx.
    • p.139: Matrix A is equated to R^TDR in two places. This should be replaced by RDR^T
    • p.139: In the first equation of the page, the "+v^T" and +v terms should be relaced with minus signs. This change is similar to what we did for the rotation. Now, x has been translated, so we must remove the translation in order to center the ellipse at the origin.
    • p.139: Equation (9.6) should have a minus sign in front of the 2x^TAv
    • term. This also applies to (9.7) and the 2x^Tb term.
    • p.139: The numbers in Example 9.1 are correct for a rotation of -45 degrees and a translation of [-2, 1]^T. For the given rotation and translation, the numbers need the following changes. Correct the matrix A by negating the elements with value 1. Change the vector b to [7, -5]^T and there should be a negative sign in front of the 2x[7, -5]^T term. The d-term should be 18 instead of 10.
      The final conic equation is 3x_1^2 - 2x_1x_2 + 3x_2^2 - 14x_1 + 10x_2 + 18 =0
      (Note: this errata item has been updated on [4/4/04] from its original 2001 entry.)
    • p. 140: Delete sentence "However, only ellipses and hyperbolas .... (9.6)". [05/28/04]
    • p.141: To be true to the form of the conic given in (9.7), we should rewrite (9.8) so that middle term is doubly-negated so that it becomes -2[x_1, x_2][-1/2c_4, -1/2c_5]^T.
    • p.141: R^TDR should be replaced by RDR^T.
    • p.141: Example 9.4 as given is correct for an ellipse that lives in quadrant II -- resulting from a -45 degree rotation and a [-2, 1]^T translation. In order to write the matrix form of this conic consistent with the form from (9.7), we should make the following changes. The given conic is 3x_1^2 + 3x_2^2 - 2x_1x_2 - 14x_1 + 10x_2 + 18 = 0. Therefore, the next equation must be changed. Negate the 1 terms in the matrix, negate the 2x^T term, change [5, -1] to [7, -5], and change the 10 term to 18.
      (Note: this errata entry was updated on [4/4/04] from its original 2001 entry.)
    • p.142: The term [1/2c_4, 1/2c_5] should be a transposed vector.
    • p.143: Example 9.5, in order to correspond to the conic in (9.9) needs the following changes. Negate the 1 terms in the matrix. The right-hand-side should be [7, -5]^T. (Note: this errata entry was updated on [4/4/04] from its original 2001 entry.)
    • p.143: The expression for A should be RDR^T.
    • p. 143 The statement with the clause "then the orthogonal matrix ..." is not a sentence, but you probably can get the idea!
    • p. 143: Replace x=R^Tx by x=Rx. If the rotation is taken out of x, then the conic equation must be rotated by Rx in order to remove R^Tx.
    • p. 143: The second to last equation on the page should be (Rx)^TRDR^T(Rx) - c = 0
    • p. 144: The last displayed equation is missing squares on the x_1 and x_2 terms.
    • A general comment: Another way of thinking about the change to the conic equation when the conic is rotated or translated, is as a coordinate system transformation.
    Found by Lewis Stiller

  • p. 156, Sketch 96: The line drawn from x to x^hat should be drawn parallel to the normal vector.   [10/5/98] 

  • p. 168, Sketch 111: The labeling of the axes drawn is as follows. Heading up is e_3, heading out of the page is e_2, and heading into the page is -e_1.   [10/5/98]

  • p. 172, Sketch 116: it should say *v'* instead of *v_1*.   [9/30/98]
    Found by Jochen Weiher, Berlin, Germany.

  • p. 181, eq (12.7): the shown matrix should be replaced by its transpose. [5/02]
    Found by Jack Hjort.

  • p. 185: Second paragraph reference to *Sketch 4.9* should be *Sketch 50*.   [10/5/98]

  • p. 186: Result of first matrix multiply: the element a(1,1) should be -2, not 2, and element a(1,2) should be -3, not 3.     [21/15/99]
    Found by Michael Smith

  • p. 200, Example 13.4: There is no need to normalize n at the bottom of the page. Then v.n=-1, and v.n^T is a matrix with all zeros except for the last row which is -1s. The last equation of this example should read
    [3,2,-4]^T = [3,2,4]^T + 8[0,0,-1] [5/28/04]

  • p. 215, top part of page: equation for a_ik should read a_ij = a_ik - g_ij a_jk. [5/28/04]

  • p. 221: In the last line of Example 14.6, *x_x* should be *x_1*.   [10/5/98]

  • p. 225: Expression for a_ij = l_i1u_ij + .... for j>=i, needs a little change. The first u_ij term should be u_1j. [5/28/04]

  • p. 235, Figure 15.5: This is not a valid example of a trimmed surface. The correct figure can be found in the zip file as   [10/5/98]

  • p. 237, Example 15.1: The points p2, p3, p4 are not correct. They should be
    p2=[0,2,0]^T, p3=[2,0,3]^T, p4=[0,2,3]^T. Also, the statement that (15.5) is more effiecient is not entirely true. In fact numerically this scheme is (potentially) a problem.

  • p. 239, last word of Section 15.8: should read collinear rather than coplanar. [5/28/04]