Preliminaries
Introduction
Scientific computing is often called the “Third Pillar of Science”, along with Theory and Experiment. Why? Computation allows us to explore models in a way we cannot do with analytic theory (think cosmological simulations, protein folding, computational fluid dynamics). Advances in algorithms and computational hardware make this an exciting and ever-growing field!
The goal of this handbook is to offer a practical guide for foundations and common algorithms used in scientific computing. We will illustrate important concepts and provide code in C++, Python, and Julia – three common languages used for developing scientific computing applications. We will use best software practices where we can, but the main goal of the handbook is to discuss algorithms and implement them from scratch to gain insights into them.
Numerical Error
XXX
IEEE Floating Point Arithmetic
XXX
Numerical Stability
XXX
Scaling and Performance
XXX