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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-1002-ereal-highprec-constants
DEFAULT BRANCH: master
Ran 24 Apr 2026 11:40PM UTC
Jobs 1
Files 633
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 Apr 2026 11:12PM UTC coverage: 84.346% (-0.05%) from 84.392%
24916020162

push

github

web-flow
feat(internal): promote blocktriple and blocksignificand arithmetic to constexpr (#753)

* feat(internal): promote blocktriple and blocksignificand arithmetic to constexpr

Foundational prerequisite for posit/cfloat/lns/etc. constexpr arithmetic
work tracked under Epic #723. Mirrors PR #716 (blockbinary arithmetic).

Promoted to constexpr:
  blocksignificand::add, sub, mul, div  (the 5 non-constexpr operators
                                         on a class that was already mostly
                                         constexpr-clean)
  blocktriple::add, sub, mul, div       (4 functions; all bodies already
                                         used `if constexpr (_trace_X)` and
                                         delegated only to constexpr-eligible
                                         _significand methods)
  free blockbinary operator==, !=, <, <=, >, >= and the matching friend
  declarations (bit-only operations; trivial promote)

Implementation notes:
- blocksignificand::add's bitsInBlock==64 path uses addcarry, which is
  not constexpr on MSVC. Same std::is_constant_evaluated() dispatch
  pattern as PR #716 for blockbinary: portable carry path in constant-
  evaluated context, intrinsic at runtime. Zero performance impact.
- blocksignificand::sub, mul, div delegate to add and inherit the constexpr
  treatment automatically.
- blocktriple::add/sub/mul/div delegate to _significand methods which are
  now all constexpr. Just needed the keyword.
- blockbinary's free comparison operators are bit-only loops; constexpr-
  eligible by inspection.

Cross-type regression validation (gcc-13 + clang-18, -std=c++20):
  blockbinary: bb_constexpr, bb_api, bb_conversion         PASS
  posit:       posit_api, posit_assignment, posit_conversion,
               posit_addition, posit_subtraction, posit_multiplication,
               posit_division                              PASS
  cfloat:      cfloat_api, cfloat_assignment, cfloat_constexpr  PASS
 ... (continued)

19 of 29 new or added lines in 3 files covered. (65.52%)

19 existing lines in 3 files now uncovered.

44937 of 53277 relevant lines covered (84.35%)

6368731.8 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
94.57
-3.81% include/sw/universal/internal/blocksignificand/blocksignificand.hpp

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
5
50.45
-4.5% include/sw/universal/verification/posit_test_suite_randoms.hpp
4
81.25
-0.22% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 24916020162.1 24 Apr 2026 11:40PM UTC 633
84.35
GitHub Action Run
Source Files on build 24916020162
  • Tree
  • List 633
  • Changed 6
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24916020162
  • 72fda92a on github
  • Prev Build on main (#24907312588)
  • Next Build on main (#24922868498)
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