“…Indeed, it was well known that during the period of serial processors, the speed-up in computation due to improved hardware-the exponential graph predicted by "Moore's law" [152]-was matched by a similar graph of speed-up due to the development of novel computational algorithms. A few examples are in order: the QR algorithm for computing eigensystems [80] and the fast Fourier transform FFT [52], which gave the impetus for the development of spectral methods during the 1960s; the development of multigrid and MATLAB in the 1970s [24,148,36]; wavelets, linear programming interior point methods, and the fast multipole method (FMM) [61,149,117,94] in the 1980s; high-resolution methods for discontinuous solutions in the 1990s [100,49]; and curvelets, greedy algorithms, compressive sensing and other "optimal algorithms" of finite-dimensional approximations, which have matured during recent years [32,69,33,208,66].…”