P3864R1 — Correctly rounded floating-point maths functions (4 items) SG6
Guy Davidson, Jan Schultke
This paper proposes adding five overload sets to the C++ standard library—cr_add, cr_sub, cr_mul, cr_div, and cr_sqrt—that perform their respective operations with correct rounding using the roundTiesToEven mode as specified in ISO/IEC 60559:2020. These functions are restricted to IEC 559 floating-point types and provide a more ergonomic alternative to manually managing floating-point rounding state. Full standard library wording is provided targeting the header.

References — Anthropic Citations API

[1] chars 72779–73205
"That is:

  • NaN is propagated.
  • A range errors occur on overflow.
  • Infinity may be propagated without error.
  • A pole error occurs when dividing by..."
[2] chars 0–62125
"
Summary: P3864R1 proposes adding correctly rounded versions of C++ mathematical functions (exp, log, sin, cos, sqrt, etc.) to the standard library, guaranteeing results within 0.5 ULP. It specifies new function templates in a cr namespace, defines error-handling behavior, and provides wording for inclusion in the library.
Pipeline: Discovery (Anthropic Opus + Citations API) → Verification Gate (OpenRouter Opus) → Report Writer (OpenRouter Opus)
Provenance: All references are machine-verified character positions from the Anthropic Citations API — deterministic, exact substrings, not model-generated quotes.