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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 03 Jun 2026 08:37PM 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

03 Jun 2026 07:50PM UTC coverage: 84.479% (+0.007%) from 84.472%
26909111685

push

github

web-flow
fix(elreal): rescue #1044 leading-pair overlap on wide hosts only (#1045)

priestRenorm could emit a non-0-overlap (DBL_k) list for a block pool with
catastrophic cancellation between nearly-equal high-precision values. A single
Priest pass (sweepUp / recurse / sweepDown) collapses the cancelling leading
limbs into a small leading term (e.g. x - pi/2 ~ 3.67e-6) while a following limb
sits closer than k, and the pass prepends the leading term without folding that
limb -- leaving an adjacent pair closer than k. Surfaced by Phase 7.6 trig
argument reduction t = x - n*(pi/2) for x near a multiple of pi/2.

The fix must be narrow. A blind "iterate priestRenorm to a 0-overlap fixpoint"
regresses narrow hosts: on bfloat16 (k=8) a deep expansion bottoms out at the
denormal floor where the two smallest limbs are closer than k and twoSumRN cannot
separate them, so extra passes never converge -- they only reshuffle and lengthen
the list, and *any* change to a narrow-host renorm result perturbs the lazy ZBCL
structure so a tail overlap main never forces lands where it IS forced, tripping
the 0-overlap assertion in ZBCL::tail() (caught by the ASan/UBSan Debug jobs on
el_math_constants and el_math_sqrt).

So the rescue is gated two ways:
  - host width: only k >= 24 (float and wider). The series/trig functions that
    need it are wide-host only anyway (a narrow mantissa cannot hold the
    expansions). Narrow hosts get exactly the single Priest pass -- byte-identical
    to the behaviour every merged test was validated against.
  - overlap shape: only a *leading-pair* overlap (the #1044 cancellation
    signature) triggers one extra pass; benign deep-tail overlaps are left as the
    single pass produces them, so well-conditioned wide-host computations stay
    identical and fast. The extra pass result is accepted only if it is fully
    0-overlap, else we fall back to the single pass.

Regression: elastic/elreal/arithmetic/renorm_cancellation.cpp pools x - n*(pi/... (continued)

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

2 existing lines in 1 file now uncovered.

47482 of 56206 relevant lines covered (84.48%)

6019223.54 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
89.78
-0.28% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26909111685.1 03 Jun 2026 08:37PM UTC 673
84.48
GitHub Action Run
Source Files on build 26909111685
  • 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 #26909111685
  • bd6e143b on github
  • Prev Build on main (#26854451401)
  • Next Build on main (#26915213055)
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