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

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

Build:
Build:
LAST BUILD BRANCH: refactor/1334-lns-core
DEFAULT BRANCH: master
Ran 20 Aug 2026 04:43PM UTC
Jobs 1
Files 620
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

20 Aug 2026 04:04PM UTC coverage: 85.39% (+0.03%) from 85.364%
32389933375

push

github

web-flow
feat(elreal): lift the narrow-host ceiling -- float 37 -> 319 digits (#1361)

* feat(elreal): lift the narrow-host ceiling -- float 37 -> 319 digits

elreal's narrow hosts were capped by the host's EXPONENT RANGE, not by its
precision: float stopped at 37 decimal digits and bfloat16 at 33, at any depth.
Both now refine without a ceiling.

    host       k    before              after      blocks  digits/block
    double    53    ~306                ~306        19      16.1   bit-identical
    float     24    37 (hard cap)       319         50       6.4
    bfloat16   7    33 (hard cap)       146+        53       2.8

float reaches essentially the full 320-digit reference; bfloat16 grows linearly
with depth -- 28/45/78/112/146 at depths 8/16/32/48/64. The design note predicted
a narrow host would need ~53/k times as many blocks: 2.2x predicted vs 2.6x
measured for float, 7.6x vs 5.9x for bfloat16.

The fix is one rule applied at three sites: NORMALISE OPERANDS, NOT RESULTS. An
EFT that runs at the operands' natural scale has already lost bits to the
subnormal range by the time it returns, and normalising its outputs cannot put
them back. block::normalise() rescales v into [1,2) and folds the scale it was
carrying into the wide integer<256> exponent -- exactly, value and combined
exponent invariant -- so the arithmetic always runs at scale ~1. Applied in
twoSumRN, singleMultHelper (block_two_mult) and twoDivZBCL (block_two_div_rem).
Fixing only the divide lifted bfloat16 from 33 to 40 and then plateaued; all
three together make it unbounded. The three min_exponent + 2k refinement floors
are gone with it.

twoSumRN also gains a nonadjacent shortcut: operands already k+1 apart need no
arithmetic, since their exact sum is the pair. The threshold is k+1, not k --
twoSumRN owes its callers the round-to-nearest decomposition (its property 5),
and plain 0-overlap allows the lower operand up to just under an ulp, where
anything above half an ulp carries and RN(... (continued)

25 of 25 new or added lines in 6 files covered. (100.0%)

43075 of 50445 relevant lines covered (85.39%)

7032695.25 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32389933375.1 20 Aug 2026 04:43PM UTC 620
85.39
GitHub Action Run
Source Files on build 32389933375
  • Tree
  • List 620
  • Changed 7
  • Source Changed 6
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32389933375
  • c5962947 on github
  • Prev Build on main (#32330082276)
  • Next Build on main (#32422306642)
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