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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 Jun 2026 04:38PM UTC
Jobs 1
Files 683
Run time 2min
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

25 Jun 2026 03:57PM UTC coverage: 84.681% (+0.008%) from 84.673%
28183136515

push

github

web-flow
feat(efloat): implement IEEE-754 correct rounding and add rounding regression tests (#1104)

* feat(efloat): implement IEEE-754 correct rounding and add rounding regression tests (#1091)

Define RoundingMode enum class and global thread-local efloat_rounding_mode
in efloat_impl.hpp.

Implement static constexpr round_limbs() to evaluate rounding decisions (guard,
LSB, sticky, and sticky_remainder) across all four standard rounding modes.

Integrate round_limbs() cleanly inside the public normalize() method, ensuring
any operation resulting in a size greater than nlimbs automatically rounds and
re-normalizes itself. This dramatically simplifies operator+= and operator*=.

Update divide_limbs() to return a remainder_non_zero flag and integrate rounding
directly inside operator/=. Make normalize() a public method to allow test
harnesses to manually normalize/round custom limb patterns.

Create rounding.cpp to test all four rounding modes (nearest ties-to-even,
to-zero, toward positive, toward negative) under precise, microscopic LSB-level
truncations (rounding size-2 vectors to size-1 efloat specializations).

Resolves #1091
Relates to Epic #1101, PR #1103

* refactor(efloat): generalize RoundingMode to sw/universal/behavior/rounding.hpp

Expose RoundingMode as a standard common enum class inside the
sw::universal namespace under Option A (<universal/behavior/rounding.hpp>).

This makes standard IEEE-754 rounding modes globally available to all number
systems in the Universal Library (e.g., lns, cfloat, and fixpnt), while
efloat_impl.hpp includes the new header cleanly and retains its thread_local
efloat_rounding_mode variable.

Relates to #1091, PR #1104

* fix(efloat): resolve CodeRabbit functional correctness comments

1. Fix division rounding sign tracking: pass result_sign (computed as (_sign != rhs._sign))
   to round_limbs in operator/= rather than the pre-operation dividend's _sign, which
   resolves directional division rounding sign mismatches.
... (continued)

75 of 84 new or added lines in 1 file covered. (89.29%)

10 existing lines in 1 file now uncovered.

48408 of 57165 relevant lines covered (84.68%)

6794504.06 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
89.62
-0.09% include/sw/universal/number/efloat/efloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 28183136515.1 25 Jun 2026 04:38PM UTC 683
84.68
GitHub Action Run
Source Files on build 28183136515
  • Tree
  • List 683
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28183136515
  • 42886ffd on github
  • Prev Build on main (#28136296907)
  • Next Build on main (#28203072856)
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