RobustArithmetic: Verified Interval Arithmetic with Correctly Rounded Kernels

Verified interval arithmetic for R, in the inf-sup (endpoint) representation of the set-based flavor of the interval standard. Every operation returns an enclosure that provably contains the exact result: outward rounding is obtained from the predecessor and successor formulas of Rump, Zimmermann, Boldo and Melquiond (2009) <doi:10.1007/s10543-009-0218-z>, which are valid under round-to-nearest and therefore need no change to the floating-point rounding mode. That mode is not reachable from R, and changing it would not be a local act: it is per-thread state of the processor, so it would govern every floating-point operation executed afterwards on that thread, in this package or anywhere else. Elementary functions are provided at two levels: a fast level over the included correctly rounded binary64 implementation, comprising fifteen kernels from CORE-MATH <doi:10.1109/ARITH54963.2022.00014> and the hardware square root, widened by the pre-registered slack of two outward steps; and a rigorous level over 'Rmpfr' with a directed-rounding bridge, reached by an escalation ladder of precisions when a verdict would otherwise fall inside the slack. Fast-level enclosures retain measured provenance because correct rounding of the included software is verified numerically rather than established here as a theorem for every kernel. On top of the kernel the package builds natural and centered interval extensions of expressions, a monotonicity test, the Hansen-Sengupta interval Newton operator with extended division and epsilon-inflated candidate verification, and a subdivision (paving) engine whose only failure mode is a named abstention with its budget printed. Conformance with IEEE Std 1788.1-2017 <doi:10.1109/IEEESTD.2018.8277144> is not claimed, and the reason is the standard's own: its subclause 1.5 makes conformance a list of requirements that an implementation shall satisfy, with no partial grade to claim. What this package follows, measured one requirement at a time and stated in the package documentation, is the interval type and the decoration system of clause 5, 22 of the 39 arithmetic operations of Table 4.1, and the seven numeric functions of Table 4.3. What it does not provide is the cancellative operations, the interval comparison relations, the text input and output of subclause 6.8, the interchange representation of subclause 7.3, and the tightest accuracy that subclause 6.5.2 requires of the basic operations, which here are one unit in the last place wider at each end.

Version: 0.2.0
Depends: R (≥ 4.1)
Imports: stats
Suggests: Rmpfr, testthat (≥ 3.0.0), knitr, rmarkdown
Published: 2026-09-16
DOI: 10.32614/CRAN.package.RobustArithmetic
Author: Jose Mauricio Gomez Julian ORCID iD [aut, cre], Alexei Sibidanov [ctb, cph], Paul Zimmermann [ctb, cph], Tom Hubrecht [ctb, cph], Cyprien Peignier [ctb, cph], CERN [cph], INRIA [cph], Szabolcs Nagy [ctb, cph]
Maintainer: Jose Mauricio Gomez Julian <isadore.nabi at pm.me>
BugReports: https://github.com/IsadoreNabi/RobustArithmetic/issues
License: GPL (≥ 3)
Copyright: See file inst/COPYRIGHTS.
RobustArithmetic copyright details
URL: https://github.com/IsadoreNabi/RobustArithmetic
NeedsCompilation: yes
Materials: NEWS
CRAN checks: RobustArithmetic results

Documentation:

Reference manual: RobustArithmetic.html , RobustArithmetic.pdf
Vignettes: Verified interval arithmetic with correctly rounded kernels (source, R code)

Downloads:

Package source: RobustArithmetic_0.2.0.tar.gz
Windows binaries: r-devel: not available, r-release: RobustArithmetic_0.1.0.zip, r-oldrel: not available
macOS binaries: r-release (arm64): not available, r-oldrel (arm64): RobustArithmetic_0.2.0.tgz, r-release (x86_64): RobustArithmetic_0.2.0.tgz, r-oldrel (x86_64): RobustArithmetic_0.2.0.tgz
Old sources: RobustArithmetic archive

Linking:

Please use the canonical form https://CRAN.R-project.org/package=RobustArithmetic to link to this page.