Nick Trefethen has a way of catching the attention of his audience during his enthusiastic lectures or of his readership in his publications. Staying close to the basics of computations, replacing an overload of formulas and abstraction with graphics and examples, makes the message easy to accept and almost obvious. The abstraction of approximation theory with existence proofs without constructive arguments and the crafting of exotic counter examples has created several legends living among scientists who may conceive a method as "inherently bad" while it works perfectly well in almost all possible practical situations. This is beautifully illustrated in an appendix to this book, Trefethen adds a reprint of his paper *Six myths of polynomial interpolation and quadrature* (Math. Today, 47(4) 184-188, 2012). This will be an eye-opener for many.

The same holds for the rest of this book. One of the myths is that polynomial interpolation is bad because it may not converge and it can be numerically unstable. However, assuming a little bit of smoothness of the function, choosing Chebyshev interpolation points and using barycentric representations, makes polynomial interpolation perfectly acceptable, in general being only a tiny bit away from the best polynomial approximant (in max norm).

So The first 20 chapters of this book convinces the reader of this fact discussing classical results like the Weierstrass theorem, Gibbs and Runge phenomenons, Lebesgue constants, rate of convergence, and associated quadrature formulas. All of this is illustrated with chebfun commands. The book is not about chebfun though, and the reader should obviously be familiar with matlab. The numerical examples and exercises that conclude each chapter are essential to assimilate the material. In fact the book which shows (LaTeX) text interlaced with chebfun commands, is actually produced by matlab's publish from matlab files with the text inserted as comments in between the matlab commands. These files should be downloaded from the book's website. So they provide the text of the book as well as the chebfun commands.

The polynomials and their approximating properties being treated, an application to spectral methods is given in chapter 21 and in chapter 22 a conformal transformation is used as a tool to increase the power of plain polynomial interpolation and approximation. The next 6 chapters switch to rational approximation. But again, Trefethen comes to a somewhat counter intuitive conclusion that in many situations rationals are not really much better than polynomials, except for approximating near singularities or approximation on unbounded intervals. The chapter on Padé approximation is remarkable because it gives a very stable implementation based on SVD, clearly computing the singular blocks in the Padé table and avoiding spurious zeros and poles (the ones that nearly cancel each other).

As a result of the chebfun approach, the whole book is concentrating mainly on real approximation on the interval [-1,1] (Chebyshev polynomials). Using a Joukowski transform x = cos(z), x = exp(iθ) allows to translate everything to the complex unit circle (Laurent / trigonometric polynomials) or the interval [-π,π] (Fourier analysis). However, Trefethen has chosen to stick to the Chebyshev situation for clarity.

The book is an easy read. It is highly recommended both for beginning students in approximation theory and/or numerical analysis and for the knowledgeable researcher. The book should be accompanied with a computer with the chebfun package installed but also with some other (probably more theoretical or classical) book on approximation theory. In this book, the theorems are accompanied with proofs that are usually not very formal, or just indication the method or the road to be followed. It might be advisable to look up details in another book. Most enjoyable are the historical remarks with which Trefethen seasons his discourse. They are most informative and sometimes pleasant anecdotes.