-
Matters Computational ideas, algorithms, source code下载
资源介绍
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].