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

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

Build:
Build:
LAST BUILD BRANCH: fix/ereal_ostream
DEFAULT BRANCH: master
Ran 02 Mar 2026 02:11PM UTC
Jobs 1
Files 572
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 Mar 2026 01:44PM UTC coverage: 84.241% (-0.02%) from 84.258%
22578685977

push

github

web-flow
feat(mixedprecision): POP precision tuning integration (#531)

* feat(mixedprecision): POP precision tuning integration

Add static bit-level precision analysis based on the POP (Precision-
Optimized Programs) method. Given accuracy requirements on program
outputs, POP determines minimum bits needed at each variable using
forward/backward error transfer functions solved as an LP.

Five-phase implementation:
- Phase 1: constexpr transfer functions and UFP computation
- Phase 2: ExprGraph DAG with iterative fixpoint analysis
- Phase 3: embedded simplex LP solver + PopSolver constraint generator
- Phase 4: carry-bit refinement via policy iteration
- Phase 5: mixed-precision C++ code generator + umbrella header

Integrates with existing range_analyzer (ufp() alias), TypeAdvisor
(recommendForNsb method), and PrecisionConfigGenerator output format.
Optional GLPK binding for ILP on larger problems.

8 test files, all passing on both gcc and clang.

Reference: Dorra Ben Khalifa, "Fast and Efficient Bit-Level Precision
Tuning," PhD thesis, Universite de Perpignan, 2021.

* ci: add mixedprecision to allowed PR title scopes

* fix(mixedprecision): address CodeRabbit review findings

- simplex.hpp: add ConstraintKind enum, RHS normalization for negative
  values, reset state on solve entry, NaN for non-optimal objective
- pop_solver.hpp: add PopLPSolver type alias for conditional solver
- glpk_solver.hpp: add Rule of 5 (delete copy, implement move), bounds
  check on get_value
- codegen.hpp: fix dead code in universal_type_string fallback
- ufp.hpp: add zero-range sentinel check
- type_advisor.hpp: use max_element for fallback instead of types_.back()

* docs(mixedprecision): add POP developer guide and update design doc

- Add pop-developer-guide.md with step-by-step workflow, complete code
  examples (determinant, dot product with profiling), API reference,
  and architecture overview
- Update pop-precision-tuning.md to reflect actual implementation:
  replace ... (continued)

39498 of 46887 relevant lines covered (84.24%)

6706453.01 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
81.25
0.45% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
1
34.64
-0.36% include/sw/universal/verification/test_suite_randoms.hpp
4
77.59
-0.99% include/sw/universal/number/posito/posito_impl.hpp
5
50.45
-4.5% include/sw/universal/verification/posit_test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 22578685977.1 02 Mar 2026 02:11PM UTC 572
84.24
GitHub Action Run
Source Files on build 22578685977
  • Tree
  • List 572
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #22578685977
  • 401df414 on github
  • Prev Build on main (#22550260168)
  • Next Build on main (#22596488542)
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