文件名称:Matters Computational ideas, algorithms, source code
文件大小:5.1MB
文件格式:PDF
更新时间:2013-06-28 08:27:56
Matters Computational ideas, algorithms, source
This is a book for the computationalist, whether a working programmer or anyone interested in methods of computation. The focus is on material that does not usually appear in textbooks on algorithms. Where necessary the underlying ideas are explained and the algorithms are given formally. It is assumed that the reader is able to understand the given source code, it is considered part of the text. We use the C++ programming language for low-level algorithms. However, only a minimal set of features beyond plain C is used, most importantly classes and templates. For material where technicalities in the C++ code would obscure the underlying ideas we use either pseudocode or, with arithmetical algorithms, the GP language. Appendix C gives an introduction to GP. Example computations are often given with an algorithm, these are usually made with the demo programs referred to. Most of the listings and gures in this book were created with these programs. A recurring topic is practical eciency of the implementations. Various optimization techniques are described and the actual performance of many given implementations is indicated. The accompanying software, the FXT [20] and the hfloat [21] libraries, are written for POSIX compliant platforms such as the Linux and BSD operating systems. The license is the GNU General Public License (GPL), version 3 or later, see http://www.gnu.org/licenses/gpl.html. Individual chapters are self-contained where possible and references to related material are given where needed. The symbol ` z ' marks sections that can be skipped at rst reading. These typically contain excursions or more advanced material. Each item in the bibliography is followed by a list of page numbers where citations occur. With papers that are available for free download the respective URL is given. Note that the URL may point to a preprint which can dier from the nal version of the paper. The electronic version of this book is available for free anonymous download. It is identical to the printed version. See appendix A for information about the license. Given the amount of material treated there must be errors in this book. Corrections and suggestions for improvement are appreciated, the preferred way of communication is electronic mail. A list of errata is online at http://www.jjj.de/fxt/#fxtbook. Many people helped to improve this book. It is my pleasure to thank them all, particularly helpful were Igal Aharonovich, Max Alekseyev, Marcus Blackburn, Nathan Bullock, Dominique Delande, Mike Engber, Torsten Finke, Sean Furlong, Almaz Gaifullin, Pedro Gimeno, Alexander Glyzov, R. W. Gosper, Andreas Grunbacher, Lance Gurney, Markus Gyger, Christoph Haenel, Tony Hardie-Bick, Laszlo Hars, Thomas Harte, Stephen Hartke, Je Hurchalla, Derek M. Jones, Gideon Klimer, Richard B. Kreckel, Mike Kundmann, Gal Laszlo, Dirk Lattermann, Avery Lee, Brent Lehman, Marc Lehmann, Paul C. Leopardi, John Lien, Mirko Liss, Robert C. Long, Fred Lunnon, Johannes Middeke, Doug Moore, Fabio Moreira, Andrew Morris, David Nalepa, Samuel Neves, Matthew Oliver, Miros law Osys, Christoph Pacher, Krisztian Paczari, Scott Paine, Yves Paradis, Gunther Piez, Andre Piotrowski, David Garca Quintas, Andreas Raseghi, Tony Reix, Johan Ronnblom, Uwe Schmelich, Thomas Schraitle, Clive Scott, Mukund Sivaraman, Michal Staruch, Ralf Stephan, Mikko Tommila, Michael Roby Wethereld, Jim White, Vinnie Winkler, John Youngquist, Rui Zhang, and Paul Zimmermann. Special thanks go to Edith Parzefall and Michael Somos for independently proofreading the whole text (the remaining errors are mine), and to Neil Sloane for creating the On-Line Encyclopedia of Integer Sequences [308].