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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 May 2026 04:51PM UTC
Jobs 1
Files 648
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

13 May 2026 04:21PM UTC coverage: 83.92% (-0.04%) from 83.955%
25811972750

push

github

web-flow
feat(zfpblock): full constexpr promotion of zfparray multi-block container (#831)

Completes the array layer constexpr work tracked under issue #745.
Building on the codec promotion in PR #830 (#815), zfparray<Real, Dim>
is now usable in constant-evaluated contexts -- enabling compile-time
generation of compressed scientific-data tables.

Container changes (zfparray_impl.hpp):

* All member functions annotated constexpr.  No std::is_constant_evaluated
  branching is required: every helper the container calls (encode_block,
  decode_block, zfp_bitstream, ...) is already constexpr after #815.
* _store (the std::vector<uint8_t> compressed buffer) is now mutable.
  This eliminates every const_cast<zfparray*>(this) in the const lazy-
  cache-load methods (operator(), decompress, clear_cache, load_block).
  The cache is an internal implementation detail; const methods are
  entitled to flush it.  flush() and write_back_cache() become const
  members.  Strictly safer and a const-correctness improvement.
* In-class initializers for _n, _rate, _cache, _cached_block, _dirty
  let the default constructor default to `= default` and drop the
  std::memset(_cache, 0, sizeof(_cache)) call that previously needed
  it.  All other constructors drop their memsets too.
* std::memset / std::memcpy replaced with element-wise loops throughout
  (cache copy, store copy, padded-block init).  Mechanical and reads
  identically at runtime; constexpr-safe.

Test additions (static/block/zfpblock/array/array_constexpr.cpp, NEW):

* Default-construct accessors: size, num_blocks, compressed_bytes,
  compression_ratio all constexpr-deterministic at zero state.
* Sized-rate construction: zfparray(8, 16.0) sets up 2 blocks of 4
  with 8 bytes per block -- verified via static_assert.
* Construct-from-source roundtrip: zfparray(8, 32.0, src) + decompress
  recovers powers of two within 2^-20 relative tolerance.  Exercises
  the full per-block codec at compile time through the container.
... (continued)

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

43 existing lines in 2 files now uncovered.

45907 of 54703 relevant lines covered (83.92%)

6474439.39 hits per line

Coverage Regressions

Lines Coverage ∆ File
35
87.32
-12.68% include/sw/universal/number/zfpblock/zfp_codec.hpp
8
93.48
-0.48% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 25811972750.1 13 May 2026 04:51PM UTC 648
83.92
GitHub Action Run
Source Files on build 25811972750
  • Tree
  • List 648
  • Changed 6
  • Source Changed 3
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25811972750
  • b7a7e675 on github
  • Prev Build on main (#25692904661)
  • Next Build on main (#25826954714)
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