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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-1002-ereal-highprec-constants
DEFAULT BRANCH: master
Ran 17 May 2026 04:11AM 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 03:42AM UTC coverage: 84.079% (+0.04%) from 84.039%
25980502833

push

github

web-flow
feat: API parity for decimal string parse in extended-precision FP family (Phase C of #835) (#847)

* feat(dd, qd, dd_cascade, td_cascade, qd_cascade): API parity for decimal string parse (Phase C of #835)

Phase C scope for the extended-precision FP family is API parity, not
a precision rewrite. Unlike posit/cfloat (where stod truncated to 53
bits up front), the dd/qd/cascade parse functions already accumulate
digits in their own high-precision arithmetic, preserving their full
mantissa width all the way through.

What was missing was the API surface:

1. NaN / Inf / Infinity token routing
   The digit-accumulation loop in each type rejected any alphabetic
   character outright, so parse("nan") / parse("inf") returned false.
   Each parse() now detects nan / inf / infinity (any case, optional
   sign, leading whitespace tolerated) before the digit path and
   routes to setnan(NAN_TYPE_QUIET) / setinf(negative).

2. operator>> failbit on parse failure
   The dd / qd extractors emitted std::cerr but did not setstate(failbit),
   so callers had no programmatic signal. The cascade types had no
   operator>> at all; added one with the standard cerr-plus-failbit
   pattern, matching the symmetry of posit / cfloat / integer / fixpnt.

The digit-accumulation core, the pown(10, e) exponent step, and all
existing semantics are unchanged. The residual ULP-level error in
pown(10, e) for large |e| remains a known limitation, deferred to a
future phase if a d2b-based replacement is warranted.

Tests:
- static/highprecision/dd/conversion/string_parse.cpp
- static/highprecision/qd/conversion/string_parse.cpp
- static/highprecision/dd_cascade/conversion/string_parse.cpp
- static/highprecision/td_cascade/conversion/string_parse.cpp
- static/highprecision/qd_cascade/conversion/string_parse.cpp

Each covers canonical decimals, nan/inf token routing (all four
case-and-sign spellings), and operator>> failbit on a bad token,
using the ReportTestSuite pattern.

Verified on ... (continued)

104 of 109 new or added lines in 6 files covered. (95.41%)

46383 of 55166 relevant lines covered (84.08%)

6424114.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
82.1
0.39% include/sw/universal/number/dd/dd_impl.hpp
1
81.44
1.67% include/sw/universal/number/dd_cascade/dd_cascade_impl.hpp
1
82.46
0.83% include/sw/universal/number/qd/qd_impl.hpp
1
78.24
2.19% include/sw/universal/number/qd_cascade/qd_cascade_impl.hpp
1
78.66
2.38% include/sw/universal/number/td_cascade/td_cascade_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 25980502833.1 17 May 2026 04:11AM UTC 650
84.08
GitHub Action Run
Source Files on build 25980502833
  • Tree
  • List 650
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25980502833
  • 8b3a8dd2 on github
  • Prev Build on main (#25979191067)
  • Next Build on main (#25988762611)
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