**Description:**

In
scientific computing (also known as computational science), advanced computing
capabilities are used to solve complex problems. This self-contained book
describes and analyzes reported software failures related to the major topics
within scientific computing: mathematical modeling of phenomena; numerical
analysis (number representation, rounding, conditioning); mathematical aspects
and complexity of algorithms, systems, or software; concurrent computing
(parallelization, scheduling, synchronization); and numerical data (such as
input of data and design of control logic).

Readers
will find lists of related, interesting bugs, MATLAB examples, and “excursions”
that provide necessary background, as well as an in-depth analysis of various
aspects of the selected bugs. Illustrative examples of numerical principles
such as machine numbers, rounding errors, condition numbers, and complexity are
also included.

This
book is intended for students, teachers, and researchers in scientific
computing, computer science, and applied mathematics. It is also an
entertaining and motivating introduction for those with a minimum background in
mathematics or computer science. *Bits and Bugs* can be used for courses in
numerical analysis, numerical methods in linear algebra/ODEs/PDEs, introductory
software engineering, introductory scientific computing, and parallel
programming.

**Contents:**

**List of Excursions **

**Preface **• Background of This
Book •
Acknowledgments

**Chapter 1: Introduction **•
Focus of This Book • Structure of This Book • Classification of Bugs

**Chapter 2: Machine Numbers, Precision, and Rounding
Errors **• The Failure of the Ariane 5 • Y2K and Data Formats •
Vancouver Stock Exchange • The Patriot Missile Defense Incident

**Chapter 3: Mathematical Modeling and Discretization** • Loss
of the Gas Rig Sleipner A • London Millennium Bridge • Weather Prediction •
Mathematical Finance

**Chapter 4: Design of Control Systems** •
Fly-by-Wire • Automotive Bugs

**Chapter 5: Synchronization and Scheduling** •
Space Shuttle • Mars Pathfinder

**Chapter 6: Software-Hardware Interplay** •
The Pentium Division Bug • Mars Rover Spirit Flash Memory Problem

**Chapter 7: Complexity** • Therac-25 • Denver
Airport • Strategic Defense Initiative

**Chapter 8: Appendix** • Urban Legends and
Other Stories • MATLAB Example Programs • Pentium Bug: Original Email of T
Nicely to Several Individuals and Groups

**Index**

**About the Authors:**

**Thomas Huckle** has been professor of
scientific computing at the Technical University of Munich since 1995. He has
conducted research at Stanford University (1993), UCLA (2000), and Leeds
University (2006) and in Como, Italy (2011). His research focuses on topics in
numerical linear algebra, such as preconditioning, regularization methods,
multigrid methods, structured matrices, and tensors, and algorithms for
parallel and high-performance computing. Since 1999, he has maintained a web
page called Collection of Software Bugs.

**Tobias Neckel** is senior researcher in
scientific computing at the Technical University of Munich and has conducted
research at the École Polytechnique, France (2003), the Tokyo Institute of
Technology (2008), and the Australian National University (2017). His research
interests include the numerical solution of partial differential equations,
hierarchic and adaptive methods, uncertainty quantification, and various
aspects of high-performance computing.

**Target Audience:**

This
book is intended for students, teachers, and researchers in scientific
computing, computer science, and applied mathematics.