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

stillwater-sc / universal / 35295045289
86%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/issue-1556-info-print-stubs
DEFAULT BRANCH: master
Ran 18 Sep 2026 02:05AM UTC
Jobs 1
Files 673
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

18 Sep 2026 01:22AM UTC coverage: 85.781% (-0.03%) from 85.815%
35295045289

push

github

web-flow
fix(utility): make TrackedBounded's enclosure real and correct the tracker metrics (#1549)

TrackedBounded computed its bounds by switching the FPU rounding mode with
fesetround, without a FENV_ACCESS pragma that GCC or Clang honour. An
optimizing compiler was free to fold the arithmetic under whatever mode it
liked: at -O2 Clang returned 1/3 as the single point 0.33333333333333337034,
the upward-rounded value, which excludes the true 1/3 -- so the class's only
guarantee was false in exactly the build everyone ships. Replace the rounding
modes with error-free transformations (TwoSum for +/-, fma for * and /, and
for sqrt), stepping one ulp outward only where the roundoff says the true
value lies. No optimizer can undo that, an operation that rounds nothing
still yields a point, and RoundingGuard is gone with it.

Also in these headers, each with its own regression check:

- tracked_statistical.hpp defined a second sw::universal::ulp, ambiguous with
  the native one, which made error() uncompilable in any translation unit that
  used a number system. Moved to detail::ulp_spacing.
- valid_bits() and relative_error() reported full precision for results that
  have none: 53 bits for a double after one operation, 53 bits of an infinity
  from division by zero, full precision for a fully cancelled LNS value, and
  the mirror image, 0 bits for an exactly known zero. Total cancellation was
  charged the cheapest cost of any subtraction. The LNS precision proxy was
  the width of the encoding rather than the fraction bits it resolves, which
  needed a new error_tracking_traits<T>::rbits, defined in every
  specialization so a generic instantiation still compiles.
- tracked_lns.hpp used uint64_t, std::string and typeid without including
  <cstdint>, <string> or <typeinfo>; interval::width() of a degenerate
  interval was a subnormal rather than zero; TrackedBounded's == compared
  bounds while < compared midpoints, so two intervals could be neither less,
  nor ... (continued)

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

18 existing lines in 2 files now uncovered.

44620 of 52016 relevant lines covered (85.78%)

8808743.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
8
93.37
-0.52% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 35295045289.1 18 Sep 2026 02:05AM UTC 673
85.78
GitHub Action Run
Source Files on build 35295045289
  • Tree
  • List 673
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35295045289
  • 90e4a863 on github
  • Prev Build on main (#35281425776)
  • Next Build on main (#35320181350)
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