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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 Jun 2026 12:12AM 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

24 Jun 2026 11:29PM UTC coverage: 84.673% (-0.03%) from 84.705%
28136296907

push

github

web-flow
feat(efloat): implement core multiplication/division engines and standard regression tests (#1103)

* feat(efloat): implement core multiplication/division engines and standard regression tests (#1090)

Implement constexpr-compatible static multiply_limbs (reversing inputs for LSB-first
long multiplication, then reversing the product back) and static divide_limbs (bit-by-bit
restoring division) to support MSB-first limb layouts.

Implement constexpr operator*=, operator/=, and their scalar double equivalents
in efloat_impl.hpp, handling all special cases (NaN, Inf, Zero math rules),
exponent math, and precision limits.

Refactor all underlying limb helpers (shift_right, grow_for_shift, align_sizes,
add_limbs, subtract_limbs, and normalize) to cleanly and consistently use the native
MSB-first layout, which simplifies trailing-zero truncation to pop_back() and resolves
all historical fuzzer offsets.

Add comprehensive standard-conforming regression tests for multiplication.cpp
and division.cpp, testing algebraic invariants, special values, and fuzzing
strict invariants (commutativity, identity, self-division, zero-product).

Resolves #1090
Relates to Epic #1101

* fix(efloat): resolve compile-time constexpr.cpp failures and multiplication typos

Correct the static assertion inside constexpr.cpp to expect isnan() for
constexpr division on 0/0, which matches our correct mathematical implementation.

Correct the expected product value of 123456 * 654321 inside multiplication.cpp
to the true exact product 80779853376.0, resolving the limb expansion test failure.

Relates to #1090, #1103

104 of 117 new or added lines in 1 file covered. (88.89%)

29 existing lines in 3 files now uncovered.

48350 of 57102 relevant lines covered (84.67%)

6727761.38 hits per line

Uncovered Changes

Lines Coverage ∆ File
13
89.71
-4.95% include/sw/universal/number/efloat/efloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
24
89.71
-4.95% include/sw/universal/number/efloat/efloat_impl.hpp
4
89.23
-1.1% include/sw/universal/number/posito/posito_impl.hpp
1
80.58
-0.22% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 28136296907.1 25 Jun 2026 12:11AM UTC 683
84.67
GitHub Action Run
Source Files on build 28136296907
  • Tree
  • List 683
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28136296907
  • a9c2baf5 on github
  • Prev Build on main (#28050193932)
  • Next Build on main (#28183136515)
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