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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 May 2026 03:25AM UTC
Jobs 1
Files 658
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

24 May 2026 10:41PM UTC coverage: 83.982% (+0.01%) from 83.971%
26374781759

push

github

web-flow
feat(ereal): add Priest normal-form structural oracle (#954 D1) (#983)

First deliverable of the first-principles verification machinery (#954): a
no-external-oracle structural check that an ereal expansion is in Priest normal
form, derived directly from the limb vector.

include/sw/universal/verification/ereal_test_support.hpp:
- check_priest_normal(limbs) / check_priest_normal(ereal<N>) returning a
  structured PriestNormalResult { violation, index } so a fuzzer failure points
  at the exact broken invariant; plus an is_priest_normal() predicate.
- Checks: decreasing magnitude, non-overlapping (|z_{k+1}| <= ulp(z_k)/2), no
  interior zero components (canonical zero is the single {0.0} limb).
- Deliberately NO length<=maxlimbs check: investigation under #981 showed
  maxlimbs is the algorithmic ceiling on inputs, not a cap on result length (a
  non-overlapping product can need >maxlimbs components for a wide-range value).

elastic/ereal/arithmetic/priest_normal_form.cpp:
- unit-tests the oracle on crafted limb vectors (normal, non-decreasing,
  overlap, interior-zero) -- exercising the rejection logic that ereal's own
  ops would never produce.
- structural fuzzer asserting every +, -, *, / result over random
  multi-component expansions is Priest-normal (LEVEL_1..4 = x1k..x1M).

This passes only because #981 fixed expansion_product's missing renormalize;
before that, * and / produced ~93% overlapping results. Verified on gcc-13 and
clang-18 through x100k.

Relates to #944
Relates to #954

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

15 of 22 new or added lines in 1 file covered. (68.18%)

4 existing lines in 1 file now uncovered.

47343 of 56373 relevant lines covered (83.98%)

8603515.91 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
68.18
include/sw/universal/verification/ereal_test_support.hpp

Coverage Regressions

Lines Coverage ∆ File
4
96.66
0.02% include/sw/universal/internal/expansion/expansion_ops.hpp
Jobs
ID Job ID Ran Files Coverage
1 26374781759.1 25 May 2026 03:25AM UTC 658
83.98
GitHub Action Run
Source Files on build 26374781759
  • Tree
  • List 658
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26374781759
  • 4fc0ffad on github
  • Prev Build on main (#26372797523)
  • Next Build on main (#26375348823)
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