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

stillwater-sc / universal / 22545334166
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/ereal_ostream
DEFAULT BRANCH: master
Ran 01 Mar 2026 02:50PM UTC
Jobs 1
Files 572
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

01 Mar 2026 02:23PM UTC coverage: 84.241% (+0.03%) from 84.213%
22545334166

push

github

web-flow
feat(dfixpnt): new decimal fixpnt type (#528)

* feat(fixpnt): new decimal fixed-point type

* feat(dfixpnt): blockdecimal refactor and decimal fixed-point type

Refactor blockdecimal from a thin blockdigit alias into a standalone
class backed by blockbinary with BCD/BID/DPD encoding support.  Build
the new dfixpnt<ndigits,radix,encoding,arithmetic,bt> decimal
fixed-point type on top of it with sign-magnitude storage, full
arithmetic (add, sub, mul, div), string I/O, and Modulo/Saturate
overflow policies.

Shared infrastructure:
- decimal_encoding.hpp: shared DecimalEncoding enum (BCD, BID, DPD)
- decimal_bits.hpp: bcd_bits(), bid_bits(), dpd_bits() helpers
- dfloat_fwd.hpp updated to use shared enum

New dfixpnt type files:
- dfixpnt_impl.hpp, dfixpnt_fwd.hpp, dfixpnt.hpp umbrella
- exceptions, numeric_limits, attributes, manipulators, mathlib
- dfixpnt_traits.hpp

CMake wiring at 4 insertion points; decimal tests decoupled from
binary fixpnt build flag.  Seven test executables (api, assignment,
logic, addition, subtraction, multiplication, division) pass on
both GCC and Clang with zero regressions across fixpnt and dfloat.

* fix(blockdecimal): add signed support and blockdigit-compatible API

blockdecimal was rewritten as a standalone class but was missing the
signed arithmetic, conversion operators, free binary operators, digit
shift operators, type_tag(), and to_binary() that the blockdigit API
test expects. This restores full compatibility.

* ci: add dfixpnt to allowed conventional commit scopes

* docs(dfixpnt): add number system documentation and docs-site sidebar entry

* fix(dfixpnt): harden against overflow and fix encoding-aware display

- blockdecimal: static_assert BID encoding limited to 19 digits (uint64_t range)
- dfixpnt operator=(long long): avoid UB negating LLONG_MIN
- dfixpnt operator=(double): use std::round and clamp to max magnitude
- manipulators type_tag: use actual encoding name instead of hardcoded "BCD"
- manipulators to... (continued)

564 of 652 new or added lines in 5 files covered. (86.5%)

2 existing lines in 1 file now uncovered.

39498 of 46887 relevant lines covered (84.24%)

6709592.89 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
0.0
include/sw/universal/internal/blockdecimal/exceptions.hpp
3
0.0
include/sw/universal/number/dfixpnt/exceptions.hpp
36
85.0
include/sw/universal/number/dfixpnt/dfixpnt_impl.hpp
47
87.4
include/sw/universal/internal/blockdecimal/blockdecimal.hpp

Uncovered Existing Lines

Lines Coverage ∆ File
2
78.08
-0.49% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 22545334166.1 01 Mar 2026 02:50PM UTC 572
84.24
GitHub Action Run
Source Files on build 22545334166
  • Tree
  • List 572
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #22545334166
  • 592faf3a on github
  • Prev Build on main (#22527248678)
  • Next Build on main (#22546979555)
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