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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 27 Jun 2026 05:47PM UTC
Jobs 1
Files 687
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

27 Jun 2026 05:06PM UTC coverage: 84.635% (+0.007%) from 84.628%
28295959931

push

github

web-flow
feat(efloat): implement Tier-1 mathematical library and integer constructors (#1122)

* feat(efloat): implement Tier-1 mathematical library and integer ctors (#1092)

Introduce bootstrap correctly rounded square root (sqrt.hpp), natural exponentiation
(exponent.hpp), and natural logarithm (logarithm.hpp) under standard repository math/
categories.

Expose master mathlib.hpp including these Tier-1 headers, and activate the uncommented
include inside efloat.hpp.

Fix restoring division overflow bit-loss: in divide_limbs(), insert a leading zero limb
'0u' at index 0 of dvd and div before the loop, providing an overflow buffer that preserves
all shifted bits. This completely fixes division on non-power-of-2 numbers, allowing
Newton-Raphson to correctly converge.

Fix integer constructor empty stubs: implement convert_signed() and convert_unsigned() by
properly delegating to convert_ieee754(static_cast<double>(v)) instead of leaving
non-zero integer constructed objects as Zero.

Create math.cpp inside elastic/efloat/math/ to verify all Tier-1 math functions (sqrt, exp,
log) and their corresponding exceptional limits and status flags.

Resolves #1092
Relates to Epic #1101, PR #1107

* fix(efloat): resolve CodeRabbit review comments on mathlib Tier-1

1. Fix integer constructors: replace the double-casting convert_signed and convert_unsigned
   with 100% exact, lossless 64-bit integer bit-packing directly into efloat's limbs,
   preventing float-precision truncation above 2^53.

2. Fix exp() range overflow: add a defensive check (x.scale() >= 17) to return +/-inf/0.0 and
   raise overflow/underflow flags before the study-reduction int64_t cast, avoiding UB.

3. Fix log() and sqrt() double narrowing: derive initial guesses (seeds) for the Newton solvers
   directly from efloat's own scale/exponent information instead of double, enabling exact
   conversions on infinite exponent ranges (e.g. 2^2000 and 2^-2000) without underflowing/overflowing
   to zero/inf.
... (continued)

91 of 106 new or added lines in 4 files covered. (85.85%)

12 existing lines in 3 files now uncovered.

48694 of 57534 relevant lines covered (84.64%)

6757305.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
67.74
include/sw/universal/number/efloat/math/exponent.hpp
5
85.65
1.32% include/sw/universal/number/efloat/efloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
8
93.95
-0.47% include/sw/universal/number/cfloat/cfloat_impl.hpp
2
85.65
1.32% include/sw/universal/number/efloat/efloat_impl.hpp
2
89.78
-0.55% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 28295959931.1 27 Jun 2026 05:47PM UTC 687
84.64
GitHub Action Run
Source Files on build 28295959931
  • Tree
  • List 687
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28295959931
  • 5c704015 on github
  • Prev Build on main (#28243641066)
  • Next Build on main (#28298610954)
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