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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 24 May 2026 12:25AM UTC
Jobs 1
Files 657
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

23 May 2026 11:57PM UTC coverage: 83.978% (+0.006%) from 83.972%
26346900378

push

github

web-flow
fix(ereal): IEEE 754 special values for multiplication (#966) (#967)

* fix(ereal): fixing the fuzz iterations

* fix(ereal): IEEE 754 special values for multiplication (#966)

ereal multiplication routed straight into expansion_product, which has no
special-value handling: finite * Inf produced Inf - Inf cross terms that
renormalized to NaN, Inf * Inf collapsed to NaN, and any zero operand was
short-circuited to a positive +0 limb -- so 2 * Inf gave NaN, Inf * Inf
gave NaN, and every signed-zero product (e.g. -0 * +0, 3 * -0) lost its
sign.

Add apply_ieee754_mul_special_values(), a sibling to the addition handler,
and apply it in operator*= before the EFT product. The sign of a product is
signbit(a) XOR signbit(b), including for zero and infinite results:

  NaN * x                 = NaN
  Inf * 0 (either order)  = NaN
  Inf * Inf               = Inf, sign = a ^ b
  Inf * finite-nonzero    = Inf, sign = a ^ b
  0 * finite / finite * 0 = 0,   sign = a ^ b

operator*=(double) now delegates to the ereal overload (matching
operator-=(double)) so the special-value table applies uniformly; the free
operator* overloads already constructed an ereal for the scalar, so in-place
`*= scalar` is now consistent with `x = x * scalar`. The signed-zero result
projects correctly to double via the convert_to_ieee754 seeding fixed in
#964.

The IEEE 754 special-value test block in multiplication.cpp (deferred by the
#946 refactor) is now exercised. Verified foundational + fuzz pass on gcc-13
and clang-18; addition and subtraction unchanged.

Resolves #966

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

22 of 22 new or added lines in 1 file covered. (100.0%)

47303 of 56328 relevant lines covered (83.98%)

5272263.54 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26346900378.1 24 May 2026 12:25AM UTC 657
83.98
GitHub Action Run
Source Files on build 26346900378
  • Tree
  • List 657
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26346900378
  • 2542e821 on github
  • Prev Build on main (#26346151217)
  • Next Build on main (#26349907074)
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