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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 27 Apr 2026 12:15PM 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:48AM UTC coverage: 84.339% (+0.03%) from 84.312%
24993226829

push

github

web-flow
feat(lns): scaffolding for configurable add/sub algorithms (Phase A of #777) (#784)

* feat(lns): scaffolding for configurable add/sub algorithms (Phase A of #777)

LNS log-add is a customization-prone operation: hardware targets prefer
table lookup, DSP wants polynomial, hardware codesign wants CORDIC, and
high-precision software wants direct evaluation via constexpr_math
(Epic #763). Hardcoding any one of these into the lns class would force
all consumers to live with that choice.

Phase A introduces the policy-class scaffolding:

- lns_addsub_algorithms.hpp: defines two algorithms behind a uniform
  contract (static add_assign / sub_assign):
  * DoubleTripAddSub -- the historical placeholder (cast to double, do
    native arithmetic, cast back). Default for backward compatibility
    and serves as a correctness oracle.
  * DirectEvaluationAddSub -- exact via cm::log2/cm::exp2 with the
    Gauss log-add formulation; handles same-sign, mixed-sign, zero
    short-circuits, and exact cancellation.
- lns_addsub_traits<Lns>: customization point. Users specialize this
  trait per lns instantiation to opt into a different algorithm.
  Chosen over a 5th template parameter because lns's auto... xtra
  parameter pack must remain last; a traits class is zero-breaking.
- lns_impl.hpp: operator+= and operator-= now delegate to
  lns_addsub_algorithm_t<lns>::add_assign / sub_assign. Default
  selection preserves the prior DoubleTrip behavior exactly.
- log_add_algorithms.cpp: focused regression that cross-validates
  DirectEvaluationAddSub against DoubleTripAddSub over small lns
  configurations and spot-checks DirectEval corner cases (a + (-a),
  zero short-circuits, mixed-sign magnitude subtraction, large
  dynamic range) on a high-precision lns where encoding rounding
  doesn't drown the algorithm signal.

Phases B (Lookup), C (Polynomial / Arnold-Bailey), D (benchmarks +
docs) and E (CORDIC, deferred) are tracked in #780, #781, #782, #783.

Relates to #777

C... (continued)

47 of 47 new or added lines in 2 files covered. (100.0%)

45538 of 53994 relevant lines covered (84.34%)

6357157.87 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24993226829.1 27 Apr 2026 12:15PM UTC 647
84.34
GitHub Action Run
Source Files on build 24993226829
  • Tree
  • List 647
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24993226829
  • 0cd5befd on github
  • Prev Build on main (#24969843496)
  • Next Build on main (#25007204123)
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