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

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

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

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)

46267 of 55054 relevant lines covered (84.04%)

6437602.03 hits per line

Source Files on job 25979191067.1
  • Tree
  • List 650
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25979191067
  • 461b7b68 on github
  • Prev Job for on main (#25973636098.1)
  • Next Job for on main (#25980502833.1)
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