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

stillwater-sc / universal / 26927855064
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 04 Jun 2026 03:48AM UTC
Jobs 1
Files 673
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

04 Jun 2026 03:08AM UTC coverage: 84.529% (+0.02%) from 84.514%
26927855064

push

github

web-flow
fix(elreal): e_zbcl full-precision terms + exact constant oracle (#1048) (#1054)

* fix(elreal): e_zbcl full-precision terms + exact constant oracle (#1048)

#1048: validate the elreal constant generators to hundreds of digits against the
320-digit reference strings, using an exact-dyadic oracle that shares no code with
elreal arithmetic. A host-double tolerance check (~16 digits) cannot see
high-precision operator bugs; an exact comparison can.

Oracle (include/sw/universal/verification/elreal_reference_digits.hpp): converts a
ZBCL to its exact dyadic value (einteger-backed dyadic_exact.hpp) and reports the
number of leading significant decimal digits it agrees with a decimal reference
string, by cross-multiplied einteger comparison (no rounding).

It immediately caught two bugs the double-tolerance test missed:

1) e_zbcl summed host-double 1.0/n! terms -- each rounded to ~k bits -- so e was
   correct to only ~17 digits no matter the depth. Fixed: accumulate the
   reciprocal factorial as a ZBCL (term_n = term_{n-1} / n, exact div), so 1/n!
   keeps depth-block precision. e now reaches ~276 digits, matching pi/ln2.

2) euler_gamma_zbcl is a bare double literal (~17 digits) -- a stub with no
   high-precision algorithm. Filed as #1053 and excluded from the deep check.

Validation test (elastic/elreal/math/constants_highprecision.cpp): asserts the
nine constants with a real generator + reference (pi, e, ln2, ln10, log2_10, phi,
sqrt2, sqrt3, sqrt5) agree to >= 270 digits. Measured at depth 20:
pi/e/ln2/ln10/sqrt3 276, log2_10 277, phi/sqrt5 280, sqrt2 282.

The double-host ceiling is ~280 digits today: the generator/mul/div/renorm
pipeline floors at the double normal range (~2^-1022) instead of the block's
symbolic int32 exponent. Lifting that floor to reach 300+ digits is a core-
arithmetic change tracked in #1052; this test asserts the honest current ceiling
and raises the threshold once #1052 lands.

Cost: generating to the ceiling is O(depth^4) (... (continued)

10 of 10 new or added lines in 1 file covered. (100.0%)

47563 of 56268 relevant lines covered (84.53%)

5997217.1 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26927855064.1 04 Jun 2026 03:47AM UTC 673
84.53
GitHub Action Run
Source Files on build 26927855064
  • Tree
  • List 673
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26927855064
  • 5559797f on github
  • Prev Build on main (#26919578707)
  • Next Build on main (#26972513907)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc