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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 May 2026 04:05AM UTC
Jobs 1
Files 657
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:28PM UTC coverage: 83.97% (-0.001%) from 83.971%
26374509558

push

github

web-flow
fix(ereal): renormalize expansion_product output to Priest canonical form (#981) (#982)

expansion_product accumulated partial products via linear_expansion_sum but
never renormalized the final result, so ereal multiplication (and division,
which is e * reciprocal) returned non-canonical expansions: overlapping
components, and limb counts far past the value's true non-overlapping length
(an ereal<16> product grew to ~69 limbs, ~93% with overlapping components).
operator+= / operator-= were already correct (they renormalize).

Add a closing renormalize_expansion() to expansion_product (guarding the zero
case). renormalize_expansion is exactly value-preserving (Priest canonical
sweepUp/recurse/sweepDown), so this changes the limb structure but not the
value.

Verified over 20,000 random ereal<16> pairs: multiplication and division
non-overlap violations drop from ~18.6k to 0, limb counts from ~69 to ~21
(the true non-overlapping length of the product's value), and the projected
value is unchanged in every case. This is the mul/div analogue of #959, which
fixed non-canonical output for + by adopting the canonical renormalize.

Full ereal regression set passes on gcc-13 and clang-18: addition,
subtraction, multiplication, division, algebraic_identities, and the
exponent/logarithm/sqrt/pow/trigonometry mathlib tests (which exercise mul/div
heavily) -- no regressions, and the values are now Priest-canonical.

Resolves #981
Relates to #944
Relates to #954

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

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

2 existing lines in 1 file now uncovered.

47318 of 56351 relevant lines covered (83.97%)

8600877.11 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
89.78
-0.55% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26374509558.1 25 May 2026 04:05AM UTC 657
83.97
GitHub Action Run
Source Files on build 26374509558
  • Tree
  • List 657
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26374509558
  • 8d8ac435 on github
  • Prev Build on main (#26372797523)
  • Next Build on main (#26375706711)
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