---
name: math-thumb-scientific-computing
description: "Apply Chapter 21 (Scientific Computing: Precision, Performance, and Reproducibility) of Mathematical Rules of Thumb to solve, check, or teach problems. Use it to distinguish arithmetic accuracy from speed and set a measurable computational contract."
---

# Scientific Computing: Precision, Performance, and Reproducibility

Use this chapter to help the reader make a checked mathematical decision. All 8 numbered rules are available in [the chapter source](references/chapter.md). [The workbook](references/notebook.md) contains a lab, exercises, solutions, and the full rule checklist. [The local rule index](references/rules.json) supplies discovery metadata.

## Start from the reader's task

Infer solve, learn, or audit mode from the request. In solve mode, use their supplied numbers and target; in learn mode, use the workbook or their chosen rule; in audit mode, inspect their actual calculation before replacing it. Gather only missing information that changes the choice: Precision and data scale; permitted absolute/relative error; reproducibility contract; profile; data movement; processor count or failure spacing.

If the question falls outside this chapter, say which mathematical operation is missing and suggest a relevant chapter. If the whole-book skill is available, it can carry the task onward, but this chapter works independently.

## Select and apply a rule

- **Is the claimed accuracy close to machine precision?** Combine unit roundoff with conditioning and algorithmic error; do not equate `eps` with final accuracy.
- **Does an expression subtract nearly equal values?** Search for a stable equivalent such as `log1p`, `expm1`, compensated summation, or a scaled formulation.
- **Do parallel runs differ?** Quantify the discrepancy, rule out races and undefined behavior, then choose a tolerance, deterministic tree, or reproducible accumulator consistent with the contract.
- **Are tests flaky?** Derive absolute and relative tolerances from expected error and units, including explicit policies for nonfinite values and arrays.
- **Is the program too slow?** Profile the complete representative workload before changing code, then reprofile after each intervention.
- **Is a hot kernel limited by arithmetic or data motion?** Measure arithmetic intensity and hardware ceilings before choosing vectorization, blocking, fusion, or traffic reduction.
- **Will more processors help?** Measure strong scaling and use the effective serial fraction to bound the gain.
- **Can the run outlive reliable hardware?** Estimate checkpoint cost and job-level failure spacing, calculate a starting interval, and test actual restart.

Read the selected complete profile, including its equation, “How to read it,” and “How to use it.” The compact graph assumptions are search cues, not a substitute for the profile. Preserve the numbered citation and role. **Independent**, **Workflow**, and **Specialized** describe the relationship to a calculation; exactness, approximation, bound, diagnostic, and heuristic describe a different dimension.

Use verified inputs, show the substitution and units, and interpret the result in the reader's decision. Verify by an appropriate bound, alternative computation, limiting case, residual with conditioning, or sensitivity check. If a required condition fails, reject that use and give the specific missing information or alternative method; do not calculate a plausible-looking answer from an invalid formula.

**Essential boundary:** Do not promise bitwise reproducibility from a tolerance check. Avoid reading machine epsilon as guaranteed final accuracy or a theoretical ceiling as measured performance.

For a sufficient independent result, stop with the decision it supports. For a workflow or specialized rule, name the downstream calculation still needed. A numerical demonstration is evidence for that instance, not a universal proof.

## Teach and check understanding

Use the [workbook](references/notebook.md) for guided practice. Start with 21.1.2, 21.2.2, 21.3.2 when the reader wants a starting exercise. Ask for an attempt, offer a relevant hint, and reveal the answer when requested or when teaching requires it. Do not force a quiz when the reader asked for a worked solution.

Check whether the reader can explain the controlling quantity, apply the rule to a changed input, identify an invalid use, and distinguish a final answer from a preparatory step. Track only demonstrated work. Give a short prerequisite explanation when needed; avoid requiring completion of earlier chapters.

## Return a usable result

Include the chosen rule numbers, assumptions that matter, calculation, verification, and next action. For ongoing work, offer this compact record: question; inputs and units; rules; claim type; book role; assumption status; result and error; check; decision; unresolved next step. Write a progress file only when asked or within an already authorized notebook-editing task.

The source chapter is a fixed book snapshot. Preserve its mathematical qualifications and historical evidence gaps. Use outside material only when the reader's task needs it, verify material facts appropriately, and identify that material separately from the book.

## Illustrated exploration

Open [the browser reader](assets/reader.html) or [the saved illustrated notebook](assets/notebook.ipynb). [Equation cards](references/equations.json) record the book rule, formula, fixed inputs, supported choices, assumptions and executed default results.

- **C21-D01: Preserve a small logarithmic change**: rule 21.1.2.
- **C21-D02: Bound speedup before buying more processors**: rule 21.3.2.
- **C21-D03: Balance checkpoint overhead against lost work**: rule 21.3.3.
- **C21-D04: See why parallel sums disagree in the last digits**: rule 21.2.1.
- **C21-D05: Find out whether memory or arithmetic sets the speed limit**: rule 21.3.1.

Use a saved illustration only when its conditions fit. Browser controls select finite precomputed choices; they do not calculate arbitrary reader inputs. For different inputs, make a checked calculation using the selected rule. Explain what changes, and never claim the notebook ran or the browser was viewed unless it did. Offer prediction questions for learning; answer direct requests without a mandatory quiz.
