Accuracy and Reliability in Scientific Computing

The cover figure is discussed on pages 211 - 213,
compare Figures 10.8 and 10.9.

This is a companion website to the book, which has been published by SIAM July 2005, in the Software, Environments, and Tools series.

The book can be purchased from SIAM and from many internet book shops.

The book is also available as an E-book from SIAM.

A review of the book by David H. Bailey is available.

Almost the full book is now freely available from Google Books.


The book and this website are produced by the IFIP WG 2.5 project group 68, consisting of Ronald Boisvert, Françoise Chaitin-Chatelin, Ronald Cools, Craig Douglas, Bo Einarsson, Wayne Enright, Patrick Gaffney, Ian Gladwell, William Gropp, Hans Petter Langtangen, Jim Pool, Siegfried Rump, Brian Smith, Van Snyder, Michael Thuné, Mladen Vouk, Wolfgang Walter (members of WG 2.5), Kenneth W. Dritz, Sven Hammarling, Roldan Pozo, Elisabeth Traviesas-Cassan, G. William Walster, and Brian Wichmann. It is edited by Bo Einarsson.

Numerical software is central to our computerized society. It is used to design airplanes and bridges, to operate manufacturing lines, to control power plants and refineries, to analyze future options for financial markets, to determine genomes, to provide the understanding necessary for the treatment for cancer. Because of the high stakes involved, it is essential that the software be accurate, reliable, and robust.

The objective of this project is to investigate some of the difficulties related to scientific computing, such as accuracy requirements and rounding, and to explain how to obtain accurate and reliable results.

We have identified the need for two types of information:

  1. How to use existing tools and packages in an effective way (not only producing reliable answers but also how users can increase their confidence in the validity of the results).
  2. How to develop robust and reliable software (that can then be used effectively by knowledgeable users).

It is essential to understand the potential difficulties that can arise and affect the accuracy and reliability of scientific computations.

This web site contains additional material to the book.

Contents in HTML.

Preface in PDF and PostScript.

Errata

BibTeX info

Part I, PITFALLS IN NUMERICAL COMPUTATION

  Chapter 1, What Can Go Wrong in Scientific Computing?
  by Bo Einarsson, Linköping, Sweden.
      Section 1.4, What Really Went Wrong in Applied Scientific Computing!
  Chapter 2, Assessment of Accuracy and Reliability
  by Ronald F. Boisvert, Gaithersburg, Maryland, Ronald Cools, Leuven, Belgium, and Bo Einarsson, Linköping, Sweden.
      Color pictures
      Test problems
      FLAME: Formal Linear Algebra Methods Environment
      The NIST Reference on Constants, Units, and Uncertainty
  Chapter 3, Approximating Integrals, Estimating Errors and Giving the Wrong Solution for a Deceptively Easy Problem
  by Ronald Cools, Leuven, Belgium.
      Black-and-white and color pictures
      A set of Matlab m-files are available here.
  Chapter 4, An Introduction to the Quality of Computed Solutions
  by Sven Hammarling, Oxford, England.
      A summary of this chapter together with a link to an alternate version is available in NAGNews Issue 49
      Black-and-white and color pictures
      Addendum
  Chapter 5, Qualitative Computing
  by Françoise Chaitin-Chatelin, Elisabeth Traviesas-Cassan, Toulouse, France.
      Color pictures
      Technical reports
      Pseudospectra gateway

Part II, DIAGNOSTIC TOOLS

  An informal introduction
  Chapter 6, PRECISE and the Quality of Reliable Numerical Software
  by Françoise Chaitin-Chatelin, Elisabeth Traviesas-Cassan, Toulouse, France.
      PRECISE Fortran Toolbox
      Qualitative Computing Group
  Chapter 7, Tools for the Verification of Approximate Solutions
  by Wayne H. Enright, Toronto, Ontario.
      Black-and-white pictures
      Black-and-white tables
      A link to this chapter is available in Recent Research publications of Wayne Enright.

Part III, TECHNOLOGY FOR IMPROVING THE ACCURACY AND RELIABILITY

  Chapter 8, General methods for implementing reliable and correct software
          Collected Algorithms of the ACM
          Netlib, a repository of mathematical software, papers, and databases
          Scientific Computing in Object-Oriented Languages
          Numerical Computing Resources on the Internet
          Mathtools, Link Exchange for the Technical Computing Community
          Some Remarks about Random Testing
      Ada, by Brian Wichmann, Woking, England, and Kenneth W. Dritz, Argonne, Illinois.
          Ada Home: The Web Site for Ada
      C, by Craig C. Douglas, Lexington, Kentucky, and Hans Petter Langtangen, Oslo, Norway.
          The C Programming Language, Second Edition
          The Development of the C Language
      C++, by Craig C. Douglas, Lexington, Kentucky, and Hans Petter Langtangen, Oslo, Norway.
          C++ Threads Web Site
          Newmat C++ Matrix Library
          TNT, Template Numerical Toolkit
          Code Cogs, A New Open Source Scientific Library / Database in C++
      Fortran, by Van Snyder, Pasadena, California.
          The official home of Fortran Standards
          Fortran Standard links
          Some Fortran links not in the book
          Fortran flowchart generator
      Java, by Ronald F. Boisvert and Roldan Pozo, Gaithersburg, Maryland.
          Color pictures
          Java Grande Forum
          Java Grande Forum Numerics Working Group
          FindBugs - A Bug Pattern Detector for Java
      Python, by Craig C. Douglas, Lexington, Kentucky, and Hans Petter Langtangen, Oslo, Norway.
          Python
          Numerical Python
          Scientific tools for Python
          Python tutorials
          Python Scripting for Computational Science
          Fortran to Python Interface Generator
          SWIG for mixed Python-C/C++ code
  Chapter 9, The Use and Implementation of Interval Data Types
  by G. William Walster, Mountain View, California.
      Fortran Code Example, from section 9.5, pp. 191-193
      Interval Computations website
      MuPAD
      Maplesoft
      Sun Fortran 95 Interval Arithmetic Programming Reference
      Sun C++ Interval Arithmetic Programming Reference
      Intel Math Kernel Library
      Proposal to Add Interval Arithmetic to the C++ Standard Library.
      Introduction to Interval Analysis, new book 2009 by Ramon E. Moore, R. Baker Kearfott, and Michael J. Cloud
  Chapter 10, Computer-Assisted Proofs and Self-Validating Methods
  by Siegfrid M. Rump, Hamburg, Germany.
      A link to this chapter is available in Publications - Siegfried M. Rump
      Color pictures
      INTLAB Announcement
      INTLAB - INTerval LABoratory
      Mersenne primes
      GIMPS The Great Internet Mersenne Prime Search
  Chapter 11, Hardware Assisted Algorithms
  by Craig C. Douglas, Lexington, Kentucky, and Hans Petter Langtangen, Oslo, Norway.
      Pictures
      Very high performance cache based techniques for solving iterative methods
      Valgrind, a system for debugging and profiling x86-Linux programs
      PAPI Performance Application Programming Interface
      HPCToolkit
  Chapter 12, Accurate and Reliable Use of Parallel Computing
  by William D. Gropp, Argonne, Illinois.
      Black-and-white picture
      Open Grid Forum
      OpenMP
      Trilinos, an effort to develop parallel solver algorithms and libraries that support parallel linear algebra
  Chapter 13, Software Reliability Engineering of Numerical Systems
  by Mladen A. Vouk, Raleigh, North Carolina.
      Black-and-white and color pictures

Suggestions are most welcome to boein@nsc.liu.se.


IFIP WG 2.5 Project 68 on "Accuracy and Reliability in Scientific Computing".
Last modified: December 31, 2013
This website is sponsored by the National Supercomputer Centre in Linköping, Sweden.
boein@nsc.liu.se