by
Suely Oliveira and David Stewart
Cambridge University Press, 2006
Please look at ongoing updates at this page:
http://www.cs.uiowa.edu/~oliveira/SCISOFTBOOK/Errata.html
Please contact us
if you find any other errors not yet in this errata.
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