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

stillwater-sc / universal / 26219049742
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 21 May 2026 10:24AM UTC
Jobs 1
Files 651
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

21 May 2026 09:58AM UTC coverage: 84.227% (-0.002%) from 84.229%
26219049742

push

github

web-flow
feat(elreal): Phase E.1 -- math constants as 4-component static expansions (#893)

* feat(elreal): Phase E.1 -- math constants as 4-component static expansions

Phase E.1 of epic #873 (resolves #887). The foundation sub-issue of
Phase E (#878): provides lazy elreal streams for the math constants
(pi, e, ln2, ln10, ...) that exp/log/trig will need.

Strategy: re-use the pre-computed multi-component expansions already
maintained in include/sw/universal/number/qd/math/constants/qd_constants.hpp
(precomputed offline by Scibuilders/Jack Poulson and Stillwater). The
qd 4-component representations are exactly the depth-0..3 components of
an elreal expansion, so we get ~212 bits of precision per constant with
zero new offline computation.

Mechanism:
  - New public static factory elreal::from_expansion(initializer_list)
    constructs an elreal from a pre-computed non-overlapping component
    expansion. Caller is responsible for the Shewchuk non-overlapping
    property; arithmetic and comparison on the result assume it holds.
  - Math constants header at include/sw/universal/number/elreal/math/
    constants/elreal_constants.hpp wraps the qd component values in
    elreal_pi(), elreal_e(), elreal_ln2(), elreal_ln10(), elreal_sqrt2(),
    elreal_phi(), and a handful of pi multiples/fractions (pi/2, pi/4,
    2pi). Naming convention matches ereal_pi() in the analogous ereal
    constants header.
  - Each constant function returns a fresh elreal with 4 materialised
    components and no generator. at(k>=4) returns 0.0 (implicit zero
    extension); deeper refinement is a future enhancement (BBP for pi,
    Taylor for e, Machin for ln2/ln10).

Tests in elastic/elreal/math/constants/constants.cpp:
  - Each constant's leading double matches M_PI / M_E / M_LN2 / M_LN10 /
    M_SQRT2 from <cmath>.
  - 4-component sum matches a hard-coded 110-digit long-double reference
    within 1e-30 relative tolerance.
  - computed_depth() == 4; at(k>=4) returns the implicit zer... (continued)

46939 of 55729 relevant lines covered (84.23%)

5285756.61 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
31.07
-0.36% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 26219049742.1 21 May 2026 10:24AM UTC 651
84.23
GitHub Action Run
Source Files on build 26219049742
  • Tree
  • List 651
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26219049742
  • 238dccd5 on github
  • Prev Build on main (#26203636807)
  • Next Build on main (#26224499819)
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