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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-ci-ereal-regression-runtime
DEFAULT BRANCH: master
Ran 03 May 2026 09:53PM 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 09:26PM UTC coverage: 84.154% (-0.05%) from 84.206%
25291271294

push

github

web-flow
feat(dfloat): full constexpr support across all operators (#805)

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

Promotes dfloat (IEEE 754-2008 decimal floating-point) to fully constexpr
across construction, assignment, arithmetic, comparison, and conversion
operators -- direct sibling of dfixpnt PR #803.

What changed
------------

include/sw/universal/number/dfloat/dfloat_impl.hpp:
  * Trivial wrappers (clear, setbit, getbit, setbits, setsign, setinf,
    setnan, setzero) marked constexpr -- each delegates to a constexpr
    blockbinary primitive.
  * Selectors (sign, iszero, isinf, isnan, isone, ispos, isneg, scale)
    marked constexpr.
  * Storage helpers (pow10_s, count_digits_s, unpack, pack,
    normalize_and_pack, dpd_decode_trailing_wide,
    dpd_encode_trailing_wide) marked constexpr.
  * Native-type constructors and operator= for signed/unsigned int and
    float/double routed through constexpr-capable convert_signed,
    convert_unsigned, convert_ieee754.
  * Arithmetic (+= -= *= /=), increment/decrement (++ --), unary minus,
    SpecificValue construction, all marked constexpr.
  * Comparison free functions (== != < <= > >=) for dfloat-dfloat,
    dfloat-double, double-dfloat, all marked constexpr.  >= now uses
    the NaN-safe (a > b || a == b) pattern (PR #797 convention).
  * Free functions abs, fabs marked constexpr.
  * convert_ieee754(double) rewritten to drop std::isnan/isinf/signbit/
    fabs/floor/log10/pow/round.  NaN detected via x != x; infinity via
    bracket against numeric_limits::max(); -0.0 detected via constexpr
    sw::bit_cast<uint64_t>; floor(log10) replaced by a constexpr loop
    bracketing v into [1, 10); pow(10, e) replaced by table lookup
    (pow10_64) plus reciprocal saturation helper pow10_64_safe for
    n >= 20.
  * convert_to_double() rewritten without std::pow.  For decimal128
    (sig_bits > 64) the std::strtod path is fenced under
    !std::is_constant_evaluated(); a constant-evaluated wi... (continued)

98 of 114 new or added lines in 2 files covered. (85.96%)

33 existing lines in 1 file now uncovered.

45777 of 54397 relevant lines covered (84.15%)

6503461.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
86.33
-6.61% include/sw/universal/number/dfloat/dfloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
33
86.33
-6.61% include/sw/universal/number/dfloat/dfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 25291271294.1 03 May 2026 09:53PM UTC 648
84.15
GitHub Action Run
Source Files on build 25291271294
  • Tree
  • List 648
  • Changed 4
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25291271294
  • 0d4375b2 on github
  • Prev Build on main (#25288593758)
  • Next Build on main (#25293401272)
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