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

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

Build:
Build:
LAST BUILD BRANCH: ci/issue-1009-ccache-save-gating
DEFAULT BRANCH: master
Ran 23 May 2026 02:26AM UTC
Jobs 1
Files 653
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

23 May 2026 02:00AM UTC coverage: 84.263% (+0.02%) from 84.243%
26320484701

push

github

web-flow
feat(elreal): Phase 1 -- block<FpType> representation (#934)

* feat(elreal): Phase 1 -- block<FpType> representation

Phase 1 of the McCleeary LFPERA reimplementation (epic #923). Lands the
foundational `block<FpType>` type with the int32_t `exp_offset` escape
multiplier, the 0-overlap predicate, pretty-printers, and a sweep test
suite parameterised over float, double, half, bfloat16, cfloat<24,5>,
and cfloat<32,8>.

What `block<FpType>` holds
- `FpType v`: sign + biased exponent + k-bit significand packed into the
  host FP type.
- `int32_t exp_offset`: multiplier in units of `2^E_FpType` so a single
  block can carry an exponent far outside the host type's hardware range,
  which Phase 7 transcendentals will need.

Effective value `v * 2^(exp_offset * 2^E_FpType)`.
Combined exponent `E(b) = scale_of(v) + exp_offset * 2^E_FpType`.
McCleeary's k = numeric_limits<FpType>::digits.

Files
- `include/sw/universal/number/elreal/exp_field_width.hpp`: trait that
  yields E for float (8), double (11), bfloat16 (8), cfloat<N,E> (E).
- `include/sw/universal/number/elreal/block.hpp`: block<FpType> struct
  plus `zero_overlap(b1, b2)` free function. Trivial layout (no in-class
  initialisers), branches on `has_universal_fp_api_v<FpType>` to pick
  between Universal's .sign()/.scale() and native std::signbit/std::ilogb.
- `include/sw/universal/number/elreal/block_manipulators.hpp`: to_binary,
  to_hex, color_print. to_hex memcpys the bit pattern for native float
  and double; for Universal wrappers it falls back to the human-readable
  form (to avoid cross-header churn -- richer rendering can come later).
- `include/sw/universal/number/elreal/elreal.hpp`: umbrella header.
- `include/sw/universal/number/elreal/elreal_fwd.hpp`: forward decl.

Tests under `elastic/elreal/block/`
- construction.cpp: trivial-copyable + trivial-destructible assertions;
  value and value+offset construction; copy semantics; compile-time
  constants (k, E, exp_step).
- accessors.cpp: sig... (continued)

55 of 56 new or added lines in 2 files covered. (98.21%)

8 existing lines in 1 file now uncovered.

47006 of 55785 relevant lines covered (84.26%)

5279431.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.0
include/sw/universal/number/elreal/block.hpp

Coverage Regressions

Lines Coverage ∆ File
8
93.63
-0.47% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26320484701.1 23 May 2026 02:26AM UTC 653
84.26
GitHub Action Run
Source Files on build 26320484701
  • Tree
  • List 653
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26320484701
  • 5e1b4061 on github
  • Prev Build on main (#26318342896)
  • Next Build on main (#26321362299)
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