• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stillwater-sc / universal / 35483994330
86%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 20 Sep 2026 02:51AM UTC
Jobs 1
Files 676
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Sep 2026 02:26AM UTC coverage: 85.841% (+0.01%) from 85.828%
35483994330

push

github

web-flow
feat(ereal): exact digit oracles for multi-thousand-digit ereal (#1573)

Part 4 of #1355. A precision claim can only be checked by an oracle that
carries more digits than the claim: with long double limbs ereal reaches
thousands (#1564), and nothing that passes through a double -- or through
to_string, which rounds -- can see them.

- ereal_reference_digits.hpp: ereal_to_dyadic reads an expansion's limbs
  into an exact dyadic rational (dyadic::from_fp is exact for every limb
  type), and agreed_decimal_digits compares against a decimal reference,
  or against another ereal of any limb type and width.
- The dyadic-only comparators move from elreal_reference_digits.hpp into
  dyadic_exact.hpp, next to the dyadic they measure, so both number
  systems use one implementation. elreal keeps its ZBCL wrappers.
- long_reference_constants.hpp: 9 constants at 5000 digits, emitted by
  generate_reference_constants.py --long. Separate from the 340-digit
  header, which cannot certify a value carrying thousands, and not
  included by any number system: it is 46 KB of string literals.

elastic/ereal/arithmetic/precision_digits.cpp checks the oracle itself
(an exact value scores the cap, a wrong digit is found where it is), the
identities (1/b)*b == 1 and a cancellation per limb type, and sqrt(2) by
Newton iteration -- arithmetic only, no math library -- against the long
reference. ereal<19> reaches 320 digits; ereal<24, long double> reaches
1235, which is the point of the wider limb.

The long double cases run at levels 2 and 3, not in CI's level 1: a
single long double division costs seconds today, because ereal does not
cap a result at maxlimbs and with a wide-exponent limb the expansion
grows to ~250 limbs whatever maxlimbs says (#1572, filed with the
measurements).

Relates to #1355
Resolves #1566

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

57 of 58 new or added lines in 2 files covered. (98.28%)

1 existing line in 1 file now uncovered.

45156 of 52604 relevant lines covered (85.84%)

9233303.58 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
88.89
include/sw/universal/verification/ereal_reference_digits.hpp

Coverage Regressions

Lines Coverage ∆ File
1
32.04
-0.35% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 35483994330.1 20 Sep 2026 02:51AM UTC 676
85.84
GitHub Action Run
Source Files on build 35483994330
  • Tree
  • List 676
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35483994330
  • 1825e89a on github
  • Prev Build on main (#35482146007)
  • Next Build on main (#35488806619)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc