This very accessible text serves as an introduction to numerical linear algebra for students at the advanced undergraduate and beginning graduate levels. A first course in linear algebra is prerequisite, and some prior exposure to numerical analysis is helpful.

After opening with a brief recitation of some basic results from linear algebra, the book devotes the next three chapters to the three core problems usually covered in a first course of computational linear algebra: systems of linear equations, linear least squares problems, and eigenvalue problems. Next, linear programming and the fast Fourier transform are each accorded a chapter, and the book concludes with an introduction to vectorization and parallel computing. FORTRAN90 and Matlab codes for many of the algorithms studied are provided both in the text and on the author's website. An appendix supplies answers to selected exercises.

The author's presentation is excellent, providing motivation to the student throughout. Topics are often introduced via applications. Diagrams of matrices helping illustrate the steps of various algorithms are amply supplied. The highly accessible discussion frequently feels like a dialogue. Aware of the questions students might ask (or should be asking), Sewell is quick to point out the features of the landscape, whether justifying the need for a better approach to the problem being studied or illuminating in the midst of an algorithm why this or that entry in a matrix needs to be zeroed next. Readily contextualizing, he excels at reminding readers where they have been, where they are going, and why. This attentiveness extends even to the proofs of theorems.

An equally accessible book intended for the same audience is Trefethen and Bau's *Numerical Linear Algebra*. Whereas it concludes with an entire chapter on Krylov subspace methods, the discussion of iterative methods for solving linear systems is in Sewell confined to one section on Jacobi, Gauss-Seidel, and SOR. Sewell also provides little coverage of floating-point arithmetic, and although his discussion of problem condition is solid, Trefethen and Bau really excel here, especially in clarifying for the beginner the ideas of condition and stability. In addition, their introductory chapter is more extensive, instilling valuable preparatory insight, and their early focus on orthogonality is helpful and appropriate. Their book lacks, however, any coverage of linear programming, the fast Fourier transform, or parallel computing. Each text provides an excellent, extremely readable introduction to computational linear algebra, and each is suitable for self-study. I highly recommend both.

David A. Huckaby (david.huckaby@angelo.edu) is assistant professor of mathematics at Angelo State University.