by Suely Oliveira and David Stewart Cambridge University Press, 2006

Thanks to Larry Shampine for pointing out a number which we had missed.

The errata is structured much like the book: by Part and Chapter.

The errata

• Part I:
• Chapter 1:
• p. 3, line 3: Replace "These kinds computations ..." with "These kinds of computations ..."
• Chapter 2:
• p. 19, line 8: Replace "If most of any of ..." with "If any of ..."
• p. 28, bisect algorithm: Replace "then a <- c else b <- c end if" with "then b <- c else a <- c end if"
• p. 29, hybrid algorithm: Replace "then a <- c else b <- c end if" with "then b <- c else a <- c end if";
also replace "then a <- w else b <- w end if" with "then b <- w else a <- w end if"
• Chapter 3: Priorities
• p. 34, last line before code sample: Replace "Simpson's approximation" with "the trapezoidal approximation".
• p. 35, line 6 from  bottom: Replace "... compare the results with the simple and the ..." with "... compare the results between the simple and the ..."
• Chapter 4: No errata.
• Chapter 5:
• p. 39, exercise 4: Replace "If b2 is small compared to ac ..." with "If b2 is large compared to ac ..."
• Part II
• Chapter 6:
• p. 53, line 8 from bottom: Delete the second
"the names of routines and global variables" following
"Part of the extra information in object files is the names of the routines and global variables in the object file"
• p. 53, last line before Sec 6.4: Replace "in enormous" with "is enormous".
• Chapter 7:
• p. 65, line 23: "C[i][j] += + A[i][k]*B[k][j];" should be "C[i][j] += A[i][k]*B[k][j];"
• p. 79, line 11: "In other languages the C/C++, ..." should be "In other languages like C/C++, ..."
• p. 72, line 11 from bottom: After "In C++, this can be done using" add "the vector template from the Standard Template Library (STL)."
• p. 74, line 8 of the second (non_expert) code example: Replace "scratch = (double *)malloc((size_t)len);" with "scratch = (double *)malloc((size_t)len*sizeof(double));"
• p. 75, in subroutine use_iface: Replace "abstol" with "abstol0" and "reltol" with "reltol0"
• p. 81, first line of code sample: Replace "grep '// **' < file.cpp >> documentation" with"grep '// \*\*' < file.cpp >> documentation"
• p. 82, line 14: Move comment "/* put back non-white-space character */" after the end of the while loop.
• p. 84, line 2: Second "printf_" (1st was on line 1) should be "printf" (no underscore).
• Chapter 8:
• p. 92, line 2: Replace "passed to the second call to fred" with "passed to the last call to fred".
• p. 93, line 9: Replace "indexes" with "indices".
• p. 93, line 5 from bottom: Replace "... refers to the jth pointer ..." with " ... refers to the jth entry..."
• p. 103, line 2: Replace "val = integrate_pp(quadratic, &qp, 0.0, 1.0);" with "val = integrate_pp(quadratic, &qp, 0.0, 1.0, 100);"
• p. 103, line 14 (3rd code sample): replace "val = integrate_pp(func_eval,sin,a,b);" with "val = integrate_pp(func_eval,sin,a,b,n);".
• p. 110, line 2: Replace "... class throught the ..." with "... class through the ..."
• Chapter 9:
• p. 119, line 3 from bottom: Replace "... such as array abounds checking ..." with "... such as array bounds checking ...".
• p. 122, line 17: Replace "... strings that tells you ..." with "... strings that tell you ...".
• p. 131, line 8 from bottom: Missing "nabla" (= inverted Delta) from the first equality.
• p. 135, line 11: Replace "After the error is thrown before the completion of the code. After the error is thrown, control passes ..." with "After the error is thrown before the completion of the code, control passes ...".
• Chapter 10: No errata.
• Part III:
• Chapter 11: No errata.
• Chapter 12:
• p. 161, last line of first paragraph: Replace "... to 1 MB" with "... to 2 MB".
• p. 163, last line of section 12.2.5: Replace "... uses of the EAX register" with "... uses of that  register".
• p. 166, line 5 from bottom: Replace
"... will access (in order) y[0], a[0][0], x[0], y[0], y[1], a[0][1], x[1], y[1], y[2], a[0][2], x[2], y[2], ..." with
"... will access (in order) y[0], a[0][0], x[0], y[0], a[0][1], x[1], y[0], a[0][2], x[2], y[0], ..."
• p. 170, line 27: Replace "... inner products routines ..." with "... inner product routines ..."
• p. 180, line 10 from bottom: Replace "single precisioncision" with "single precision".
• Chapter 13: No errata.
• Chapter 14:
• p. 197, line 9 from bottom: Replace "... efficiency in mind" with "... efficiency as a priority".
• p. 198, line 11 from bottom: Replace "... as it finds it as referenced ..." with "... as it finds it is referenced ...".
• p. 206, line 7 of first paragraph: Replace "... the available physical memory on the few cases this is needed" with "... the available physical memory in the few cases this is needed".
• Part IV
• Chapter 16: No errata.
• Chapter 17: No errata.
• Part V
• Chapter 18:
• p. 239, lines 14, 15: Replace "since they have the pointer but not pointer attribute ..." with "since they have the allocatable but not pointer attribute ..."
• p. 247, line 7: Replace "... pages 127 to 127 ..." with "... page 127 ...".
• p. 247, displayed equation: Replace the right-hand side vector with a vector with components y1, y2, ..., yn.
• Chapter 19:
• p. 264, second displayed equation: Replace "d2u/dx2(xi,yj)" with "d2u/dy2(xi,yj)".
• p. 273, line 6: Replace "d2u/dx2" with "-d2u/dx2".
• p. 282, line 3: Replace "This can be done use links ..." with "This can be done using links ...".
• Bibliography
• The reference to the LAPACK Users' Guide [5], should include E. Anderson in the author list.

Note that the errata is for errors.  Differences of opinion, matters of emphasis, scope and direction, are quite a different matter.  We will consider messages on these other issues (and if we see a really good argument might even change our minds about a topic), but the proper forum lies elsewhere, not in an errata.

Copyright Suely Oliveira and David Stewart, August 2006