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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-1002-ereal-highprec-constants
DEFAULT BRANCH: master
Ran 03 May 2026 01:41PM UTC
Jobs 1
Files 648
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

03 May 2026 01:14PM UTC coverage: 84.172% (-0.02%) from 84.189%
25280163148

push

github

web-flow
feat(dd_cascade): full constexpr support across all operators (#797)

* feat(dd_cascade): full constexpr support across all operators

Promotes dd_cascade (double-double via floatcascade<2>) to fully
constexpr across construction, arithmetic (+, -, *, /, +=, -=, *=, /=),
comparison (==, !=, <, >, <=, >=), unary negation, and conversion-out
(operator int/long/long long/unsigned*/float/double).  Joins integer
(#720), posit (#718), cfloat (#719), bfloat16 (#725), fixpnt (#721),
lns (#776), areal (#792), dbns (#795), and dd (#796) as a fully
constexpr-compliant Universal type.

Per Epic #723.  This issue's structural challenge was that dd_cascade
arithmetic routes through floatcascade<2>'s expansion_ops layer, whose
generic add_cascades<N> and multiply_cascades<N> templates use
std::sort and std::vector (std::sort is not constexpr in C++20 -- it
becomes constexpr in C++26).  The plan: keep the generic templates
intact (they're still consumed by td_cascade and qd_cascade) and add
non-template constexpr overloads for floatcascade<2>.

floatcascade.hpp changes (expansion_ops namespace):
  - two_sum, fast_two_sum: is_constant_evaluated() dispatch.  Runtime
    branch retains the volatile intermediates (load-bearing for
    aggressive-optimization correctness per
    floatcascade_volatile_hardening.md).  Constexpr branch drops
    volatile (constexpr arithmetic is exact under IEEE-754 already).
  - two_prod: same dispatch.  Constexpr branch uses split-based product
    (FMA-free, since std::fma is not constexpr in C++20); runtime
    keeps std::fma.
  - three_sum, three_sum2: marked constexpr (now-constexpr two_sum).
  - compress_4to2: marked constexpr (pure fast_two_sum chain).
  - renormalize<2> specialization: marked constexpr; std::isinf
    replaced with sw::universal::is_inf_cx (constexpr from #796).
  - **Added constexpr non-template overloads** for floatcascade<2>:
      add_cascades(floatcascade<2>, floatcascade<2>) -> floatcascade<4>
      multiply_c... (continued)

122 of 146 new or added lines in 2 files covered. (83.56%)

15 existing lines in 3 files now uncovered.

45809 of 54423 relevant lines covered (84.17%)

6494008.87 hits per line

Uncovered Changes

Lines Coverage ∆ File
22
84.77
-1.14% include/sw/universal/internal/floatcascade/floatcascade.hpp
2
79.78
-0.38% include/sw/universal/number/dd_cascade/dd_cascade_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
3
79.78
-0.38% include/sw/universal/number/dd_cascade/dd_cascade_impl.hpp
2
89.8
-0.28% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 25280163148.1 03 May 2026 01:41PM UTC 648
84.17
GitHub Action Run
Source Files on build 25280163148
  • Tree
  • List 648
  • Changed 7
  • Source Changed 2
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25280163148
  • a28f6727 on github
  • Prev Build on main (#25268392612)
  • Next Build on main (#25281498813)
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