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

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

Build:
Build:
LAST BUILD BRANCH: fix/urdiv-removal
DEFAULT BRANCH: master
Ran 22 Aug 2026 02:08PM 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

22 Aug 2026 01:25PM UTC coverage: 85.405% (+0.04%) from 85.369%
32575727434

push

github

web-flow
feat(elreal): a thousand-digit demonstration on both float and double hosts (#1376)

* feat(elreal): a thousand-digit demonstration on both float and double hosts

Adds applications/precision/elreal/thousand_digit_sqrt.cpp: one Newton iteration
for sqrt(2), instantiated on native double, elreal<float> and elreal<double>.

The kernel is ordinary templated numeric code with no elreal in it:

    template <typename Real>
    Real newton_sqrt(const Real& a, int iterations) {
        Real x = a / Real(2.0);
        for (int i = 0; i < iterations; ++i) x = (x + a / x) / Real(2.0);
        return x;
    }

On a native double it stalls at 16 digits however many iterations it is given. On
elreal it converges past 1150 digits on BOTH hosts -- 1178 on float, 1159 on double
-- verified against a 1200-digit sqrt(2) computed in exact integer arithmetic
outside this library. Float needs ~2.2x the blocks for the same digits, its limb
carrying 24 bits to double's 53; that is the only difference the host type makes to
the answer, which is the point of the demonstration.

Part 3 uses the one elreal-specific API the demo needs. Newton doubles the correct
BITS per step, so ramping precision() alongside the iterate rather than paying the
final precision from the first step costs 4s and 25s instead of 25s and 206s, and
prints the convergence as it goes:

    elreal<double>: 32 64 130 261 521 1041 1159 digits
    elreal<float >: 17 32 62 124 248 493 988 1178 digits

Includes a small ZBCL-to-decimal renderer (via the exact dyadic conversion), since
elreal's operator<< prints only a host-double approximation -- so the demo can show
the digits rather than just count them.

Registered with compile_all("false"): a demonstration, not a regression test. It is
built so it cannot silently rot, but not run by ctest, since the float host takes
~25s to converge. CI_LITE does not build applications at all.

This was not possible before now. Division by a multi-block value capped at ~271
... (continued)

43103 of 50469 relevant lines covered (85.4%)

7296792.35 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32575727434.1 22 Aug 2026 02:08PM UTC 620
85.4
GitHub Action Run
Source Files on build 32575727434
  • Tree
  • List 620
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32575727434
  • 0d26b42a on github
  • Prev Build on main (#32548418546)
  • Next Build on main (#32589765478)
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