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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 21 Aug 2026 08:32PM UTC
Jobs 1
Files 620
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

21 Aug 2026 07:55PM UTC coverage: 85.375% (-0.02%) from 85.394%
32520953030

push

github

web-flow
fix(elreal): let div_online reach the depth the caller asks for (#1374)

* fix(elreal): let div_online reach the depth the caller asks for

div_online's dense-divisor path pinned its Newton reciprocal to a depth derived
from the host's exponent range:

    target = (-min_exponent - 2*k) / k     // 17 on double, 3 on float

so every division by a multi-block value stopped at 17 blocks (~271 digits) on a
double host and 3 blocks (~22 digits) on float, no matter how many blocks the
caller pulled. It is the same mistaken premise #1362 removed elsewhere -- a block
carries its scale in a wide integer<256> exponent, so min_exponent bounds nothing
about how deep an expansion may go. #1361/#1362 swept out the min_exponent+2k
guards; this one is a target DEPTH rather than a guard, so it survived.

div_online now takes that depth as a parameter (default kDenseQuotientDepth = 64,
matching the eager div()'s existing default and derived from no host property).
Depth bounds the dense path only: long division is genuinely streaming and
produces blocks for as long as the caller pulls. The dense path cannot be lazy in
the same way -- Newton recomputes the whole reciprocal per depth rather than
extending it, so a deeper pull would not agree block-for-block with a shallower
one -- which is why it takes a budget up front.

Two call sites now pass what they know:
- elreal::operator/= passes precision() plus a small guard, so the class facade's
  division finally honours the precision the object was given. A Newton iteration
  for sqrt(2) written against the facade stalled at 282 digits at any target
  depth; it now doubles per step as Newton should (48 -> 97 -> 195 -> 391 -> 513).
- the Payne-Hanek reduction in trigonometry.hpp passes its own reddepth. It
  computes exactly how many blocks of pi/2 it needs to cover |x|'s binade plus
  the output precision, then divided at 17 blocks regardless -- the comment said
  "full precision" and meant it, but did not get it.

Not fix... (continued)

11 of 11 new or added lines in 3 files covered. (100.0%)

10 existing lines in 1 file now uncovered.

43088 of 50469 relevant lines covered (85.38%)

7276229.34 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 32520953030.1 21 Aug 2026 08:32PM UTC 620
85.38
GitHub Action Run
Source Files on build 32520953030
  • Tree
  • List 620
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32520953030
  • 0c8c49cb on github
  • Prev Build on main (#32501448965)
  • Next Build on main (#32548418546)
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