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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 17 May 2026 02:53AM UTC
Jobs 1
Files 650
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

17 May 2026 02:31AM UTC coverage: 84.039% (+0.02%) from 84.015%
25979191067

push

github

web-flow
feat(cfloat): route decimal string parse through decimal_to_binary (Phase B2c of #835) (#846)

* feat(cfloat): route decimal string parse through decimal_to_binary (Phase B2c of #835)

Replaces the std::istringstream double funnel in cfloat::parse() with a
direct call into the high-precision decimal_to_binary utility shipped in
Phase B2a. For wide cfloat configurations (IEEE quad, extended, and
beyond) this captures the trailing decimal precision that the legacy
path silently truncated.

Implementation:
- Add direct <cctype>, <sstream>, <string_view>, and
  <universal/utility/decimal_to_binary.hpp> includes
- Decimal branch of parse() now:
  * Routes "nan" / "inf" / "infinity" tokens (any case, optional sign)
    to setnan / setinf with proper sign handling
  * Calls decimal_to_binary::convert with target_mantissa_bits sized to
    a blocktriple<Cfloat::fbits, MUL, bt>::radix + 1 so the d2b output
    aligns bit-for-bit with the blocktriple's significand
  * Packs the d2b mantissa into the blocktriple (MUL op gives 2*fbits
    of headroom, enough for cfloat's own round-to-nearest-even decision
    to consume guard/sticky correctly)
  * Folds d2b's residual guard/sticky into the blocktriple's lowest bit
    so cfloat's convert(blocktriple, cfloat) picks them up as sticky
    tail
- Native cfloat hex format path (regex match on nbits.esxHEXVALUEc) is
  unchanged, including the 0x-prefix tolerance from prior work
- operator>>() now sets std::ios::failbit on parse failure (in addition
  to the std::cerr diagnostic), matching the symmetry pattern from
  posit / integer / fixpnt

Tests (static/float/cfloat/conversion/string_parse.cpp):
- half:    bit-exact match against half(double) for 10 canonical inputs
- single:  bit-exact match against single(float) for 8 canonical inputs
- duble:   bit-exact match against duble(double) for 7 exact inputs
- nan/inf: 4 NaN spellings + 4 positive Inf spellings + 3 negative Inf
- hex:     16.5x3C00c and 16.5x0x3C00c both ... (continued)

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

3 existing lines in 1 file now uncovered.

46267 of 55054 relevant lines covered (84.04%)

6437602.03 hits per line

Coverage Regressions

Lines Coverage ∆ File
3
80.58
-0.67% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 25979191067.1 17 May 2026 02:53AM UTC 650
84.04
GitHub Action Run
Source Files on build 25979191067
  • Tree
  • List 650
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25979191067
  • 461b7b68 on github
  • Prev Build on main (#25973636098)
  • Next Build on main (#25980502833)
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