Correct Rounding of Elementary Functions in IEEE754 Formats
Last update: Jul. 16, 2026.
Recent publications
Brisebarre, Hanrot, Muller and Zimmermann, Correctly-rounded
evaluation of a function: why, how, and at what cost? ACM Computing Surveys. Vol. 58 No 1, 2026.
Lim and Nagarakatte, One polynomial approximation to produce correctly-rounded results of an elementary function for multiple representations and rounding modes, POPL 2022.
Gladman, Innocente, Mather, Ozaki, and Zimmermann, Accuracy
of Mathematical Functions in Single, Double, Double Extended, and
Quadruple Precision (last version: Feb. 2026)
Lefèvre, Ly, and Zimmermann, Computing hard-to-round Cases of sin, cos, tan in Double Precision, ARITH 2026.
Zimmermann, The GNU libc atanh is Correctly Rounded, ARITH 2026.
Brisebarre, Hubrecht, Lauter, Muller, and Ruiz-Rohena, Correctly rounded vector
implementation of the exponential function in binary64 arithmetic, ARITH 2026.
Anderson, Cornea, Stepin, and Tudor Panu Correctly Rounded Functions For Vector Applications: A Performance Study, ArXiV document, 2026.
Tools
Sollya:
environment and library for safe floating-point code
development. It is particularly targeted to the automatized
implementation of mathematical floating-point libraries. In
particular: certified supremum norm, fast Remez algorithm, and
computation of polynomial approximation under special constraints
(such as the coefficients being exactly representable as FP
numbers). Authors: Chevillard, Lauter and Joldes.
Gappa: helps
verifying and formally proving properties on numerical programs
and circuits handling floating-point or fixed-point arithmetic.
In our context: makes it possible to obtain a certified tight bound
on the error committed when evaluating a polynomial that
approximates a function. Author: Guillaume Melquiond.
Currently available correctly-rounded function software
The CORE-MATH
project: on-the-shelf high performance open-source
mathematical functions with correct rounding that can be integrated
into current mathematical libraries (contains all binary32 and
binary64 functions from the C23 standard except compound).
Main authors: Sibidanov and Zimmermann
LLVM LibC: the
C library that comes with the LLVM compiler. All binary32 functions
from the C99 standard except erfc, and the most useful binary64
functions: acos, asin, asinpi, cbrt, cos, exp, exp2, exp10, expm1, hypot, log, log10,
log1p, log2, sin, sincos, and tan, plus most binary16 and several BF16 functions
RLIBM: the
most useful binary32 functions: acos, asin, atan, cos, cosh, cospi,
exp, exp10, exp2, log,
log10, log2, sin, sinh, sinpi, and tan. Authors: the group of
Santosh Nagarakatte at Rutgers University
BACSEL:
computes worst cases for rounding. Authors: Hanrot, Lefèvre, Stehlé
and Zimmermann.
GNU MPFR:
a library for multiple-precision floating-point computation with correct rounding. Main developers Hanrot, Lefèvre, Pélissier, Théveny and Zimmermann.
Resources
Correctly-Rounded Logarithm Example
Dr. Christoph Lauter developed a correctly-rounded logarithm implementation prioritizing simplicity for educational purposes rather than maximum performance. His program is available in an archive, and he has recorded lectures explaining the implementation.
Video Tutorial (Lecture and Implementation), Presentation, Download Document GitLab Repository with Implementation
Hardest-to-Round Cases Collection
A central repository for the hardest-to-round cases in common mathematical functions is being compiled. Currently, the largest collected list can be found at
Worst Cases for Rounding, compiled by Paul Zimmermann.
In binary64 arithmetic they are known in the whole domain for
exp, log,
exp2,
log2,
exp10,
log10,
log1p,
log2p1,
log10p1,
expm1,
exp2m1,
exp10m1,
rsqrt,
sin,
cos,
tan,
sinpi,
cospi,
tanpi,
acospi,
asinpi,
atanpi,
cosh,
sinh,
tanh,
acosh,
asinh,
atanh,
acos,
asin,
atan,
cbrt,
erf,
erfc,
rsqrt,
lgamma,
tgamma,
Slides
J.-M. Muller, The Table Maker's Dilemma and Correctly-Rounded Functions: A Quick Review of 25 Years of Work, Keynote talk at ARITH'2026, Fulda, Germany, June 2026.
Copyright (C) 2026 Nicolas Brisebarre, Christoph Lauter, Jean-Michel Muller and others