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

stillwater-sc / universal / 26790633100
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 02 Jun 2026 01:05AM UTC
Jobs 1
Files 667
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

02 Jun 2026 12:28AM UTC coverage: 84.189% (+0.02%) from 84.17%
26790633100

push

github

web-flow
feat(elreal): negation, multiplication, division (Phase 6, #930) (#1037)

* feat(elreal): negation, multiplication, division (Phase 6, #930)

Round out the field operations on ZBCL<FpType> (dissertation 4.2.4/4.2.5/4.2.6),
building on the corrected add()/sum()/priestRenorm foundation.

- negate.hpp: negate(x) -- lazy per-block sign flip ({-v, exp}). value(-b) =
  -value(b) exactly; the combined exponent is unchanged by a sign flip, so
  0-overlap is preserved with no renormalisation. empty -> empty.

- multiply.hpp: mul(x, y, depth) -- finite-prefix product. Materialise the first
  `depth` blocks of each operand, multiply out with block_two_mult, and
  renormalise the pooled partial-product blocks with priestRenorm. Exact for
  finite operands; truncates infinite operands at `depth` (full anti-diagonal
  streaming deferred to Phase 7). Also mul_scalar(s, y) (block x ZBCL). Keeps
  only normalised product blocks (drops zeros and sub-floor denormals).

- divide.hpp: div(x, y, depth) -- long division on expansions. The remainder is
  carried as an eager, priestRenorm'd block list (NOT a lazy ZBCL): each step
  takes the next quotient block q = block_two_div_rn(rem0, y0), subtracts q*y
  from the remainder, and renormalises. Refinement stops on exact remainder, the
  depth budget, a no-progress guard, or a margin above the denormal floor
  (min_exponent + 2k) -- denormal blocks have no implicit leading bit and would
  break 0-overlap accounting (hit quickly by bfloat16, k=7). Carrying the
  remainder eagerly avoids a lazy add()-tower and never forces a near-floor
  denormal. Divide-by-zero (empty divisor) returns the empty co-list, or throws
  elreal_divide_by_zero under ELREAL_THROW_ARITHMETIC_EXCEPTION.

- exceptions.hpp: add elreal_divide_by_zero + the ELREAL_THROW_ARITHMETIC_EXCEPTION
  guard (default 0), consistent with the other Universal number systems.

Tests (elastic/elreal/arithmetic/, dyadic-exact oracle, hosts {double,float,bfloat16}):
- negat... (continued)

71 of 72 new or added lines in 4 files covered. (98.61%)

1 existing line in 1 file now uncovered.

47166 of 56024 relevant lines covered (84.19%)

6025205.4 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
97.5
include/sw/universal/number/elreal/divide.hpp

Coverage Regressions

Lines Coverage ∆ File
1
80.58
-0.22% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 26790633100.1 02 Jun 2026 01:05AM UTC 667
84.19
GitHub Action Run
Source Files on build 26790633100
  • Tree
  • List 667
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26790633100
  • de836d96 on github
  • Prev Build on main (#26733598966)
  • Next Build on main (#26796877956)
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