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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 15 Jun 2026 04:54PM UTC
Jobs 1
Files 677
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

15 Jun 2026 04:09PM UTC coverage: 84.578% (+0.009%) from 84.569%
27559656978

push

github

web-flow
feat(elreal): high-precision euler_gamma via Brent-McMillan (#1053) (#1073)

* feat(elreal): high-precision euler_gamma via Brent-McMillan (#1053)

euler_gamma_zbcl was a stub returning a bare double literal (~17 digits)
while every other constant reached ~280; the #1048 exact-dyadic oracle
measured exactly that. Replace it with a real Brent-McMillan B1 generator:

  gamma = A(n)/B(n) - ln(n),
  B(n) = sum_k (n^k/k!)^2,  A(n) = sum_k (n^k/k!)^2 * H_k,  H_0 = 0,
  |error| ~ pi*exp(-4n)  ->  n >= D*ln(10)/4 for D digits.

Validated correct against s_euler_gamma: 47/64/129/194 digits at depth
3/4/8/12 (~16 digits/depth), reaching the host-double ceiling (~320, >= the
test's 300-digit threshold) at depth 20.

This is an eager-batch generator like the other constants. It is the
slowest of them (the Euler-Mascheroni constant has no rapidly-converging
elementary series, and ln(n) goes through the shared eager ln2/odd_power_
series). Measured bottlenecks at depth 12: the 560-term mul(w_k,H_k) loop
(132s) and ln2_zbcl (107s) -- both eager, both shared. Migrating the series
layer to the online (pull-driven) mul/div is #1061 Phase 3 and will speed up
euler_gamma AND pi/ln2/ln10 uniformly; doing it for euler_gamma alone would
leave it ln2-bound and create a one-off. So this ships the correct generator
now (the actual gap was correctness, not speed) and defers the uniform
speedup to #1061. The test is REGRESSION_LEVEL_4 (stress) only.

Also fixes a prerequisite latent compile bug: elreal_reference_digits.hpp
did `d.scale += b.exp` (int += integer<256>) -- broken since #1066 widened
the block exponent. It compiled only because default builds are LEVEL_1,
which #if-compiles-out the agreed_decimal_digits calls; at LEVEL_4 the
high-precision test did not compile at all. Cast b.exp to int (the per-block
offset fits int for any real host).

Re-enable euler_gamma in constants_highprecision.cpp. LEVEL_4 path compiles
on gcc and clang.

Resolves #1053

Co-Authored-By: Clau... (continued)

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

47824 of 56544 relevant lines covered (84.58%)

6813533.65 hits per line

Jobs
ID Job ID Ran Files Coverage
1 27559656978.1 15 Jun 2026 04:54PM UTC 677
84.58
GitHub Action Run
Source Files on build 27559656978
  • Tree
  • List 677
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27559656978
  • 2273c692 on github
  • Prev Build on main (#27519576221)
  • Next Build on main (#27584017360)
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