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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 04 Jun 2026 07:33PM UTC
Jobs 1
Files 673
Run time 2min
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 06:48PM UTC coverage: 84.55% (+0.02%) from 84.529%
26972513907

push

github

web-flow
feat(elreal): lift the 2^-1022 precision floor to reach 300+ digits (#1052) (#1055)

* feat(elreal): lift the 2^-1022 precision floor to reach 300+ digits (#1052)

The elreal constant generators plateaued at ~276-282 decimal digits regardless of
depth -- short of the ~308-digit architectural ceiling of a double host -- because
the arithmetic pipeline floored at the double normal range (~2^-1022) instead of
the block's symbolic int32 exponent. The exact-dyadic oracle (#1048) measured the
plateau; this lifts it. Diagnosis (two layered causes, each verified with a spike):

1) div() floor. divide.hpp stopped the long division at
   exp_floor = min_exponent + 2k (~2^-915 for double). But the block EFTs
   (block_two_mult / block_two_div) are scale-invariant -- they operate on the
   normalised significand v in [1,2) (always a normal host value) and track the
   scale symbolically in exp -- so the remainder reductions never denormalise on a
   wide host. Lifting the floor lets div() reach its true ~19-component / ~308-digit
   ceiling (measured: div(1/7) 276 -> 308 digits). Gated to wide hosts (k>=24);
   narrow hosts (bfloat16 k=8, fp16 k=11) genuinely denormalise near their small
   min_exponent and keep the floor (the same one #1044 respects).

2) series-accumulation loss. Even with div() lifted, pi/ln2/e capped ~2 components
   below div(): odd_power_series / e_zbcl ran their internal mul/div/sum at the
   OUTPUT depth, so accumulation error consumed the deepest output blocks. They now
   carry kSeriesGuard (=4) extra working blocks internally (output + guard) and use
   the wide-host series_stop_exp(), absorbing the loss.

Result (depth 20, vs the 320-digit reference_constants.hpp):
  pi 307, e 309, ln2 308, ln10 308, log2_10 309, phi 312, sqrt2 311, sqrt3 308,
  sqrt5 312 -- all >= 300 (was 276-282). constants_highprecision.cpp threshold
  raised 270 -> 300. euler_gamma stays a stub (#1053).

Ceiling note: ~308-312 digits is the hard double-host limit... (continued)

14 of 14 new or added lines in 2 files covered. (100.0%)

7 existing lines in 2 files now uncovered.

47577 of 56271 relevant lines covered (84.55%)

6022744.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
5
80.8
-1.12% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
2
89.78
-0.55% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26972513907.1 04 Jun 2026 07:33PM UTC 673
84.55
GitHub Action Run
Source Files on build 26972513907
  • Tree
  • List 673
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26972513907
  • 2f782dca on github
  • Prev Build on main (#26927855064)
  • Next Build on main (#26982227463)
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