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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 28 Apr 2026 12:01AM UTC
Jobs 1
Files 647
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

27 Apr 2026 11:34PM UTC coverage: 84.354% (-0.002%) from 84.356%
25025250568

push

github

web-flow
feat(lns): benchmark suite + design doc for add/sub algorithms (Phase D of #777) (#787)

* feat(lns): benchmark suite + design doc for add/sub algorithms (Phase D of #777)

Close out the configurable lns add/sub roadmap (Epic #777) with the two
deliverables from issue #782:

1. benchmark/performance/arithmetic/lns/log_add_algorithms.cpp
   Per-algorithm throughput + accuracy benchmark across representative
   (nbits, rbits) configurations: (8,4), (16,8), (24,16), (32,16). Times
   each policy via direct Alg::add_assign / sub_assign calls (bypassing
   the traits dispatch so all 5 algorithms can be measured in the same
   translation unit). Accuracy is sampled over a geometric sweep of
   operand magnitudes spanning the lns dynamic range with both same-sign
   and mixed-sign pairs, against DirectEvaluation as the oracle. Output
   is a Markdown table per config, suitable for direct paste into
   release notes.

   Empirical observations (illustrative, host-dependent):
   - Throughput differential between algorithms is small (~1 M ops/sec
     on a desktop x86_64 build) because the lns class encode/decode
     dominates the per-call cost. The differential at the sb_add(d)
     level on raw double operands -- the regime hardware co-processors
     actually pipeline -- is much larger but not exposed by the lns
     class API benchmark.
   - Accuracy matches the analytical bounds: Lookup ~9.5e-5 rel error
     at default IndexBits on rbits=16, Polynomial ~1.1e-5 rel,
     ArnoldBailey caps at ~5e-2 rel.

2. docs/design/lns-add-sub.md
   Design document explaining the framework. Covers:
   - Why log-domain addition is the hard case (Gauss log-add formulation)
   - The lns_addsub_traits<Lns> customization point + rationale for the
     traits-class pattern over a fifth template parameter
   - The shared detail::gauss_log_add<Policy> dispatcher and per-algorithm
     contract (sb_add, sb_sub)
   - Per-algorithm description, error model, and use case for each ... (continued)

45632 of 54096 relevant lines covered (84.35%)

6342525.86 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 25025250568.1 28 Apr 2026 12:01AM UTC 647
84.35
GitHub Action Run
Source Files on build 25025250568
  • Tree
  • List 647
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25025250568
  • b53ad3bd on github
  • Prev Build on main (#25017180363)
  • Next Build on main (#25056252254)
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