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

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

Build:
Build:
LAST BUILD BRANCH: fix/issue-1044-priestrenorm-cancellation
DEFAULT BRANCH: master
Ran 27 Apr 2026 12:15PM UTC
Files 647
Run time 21s
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.1

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)

45538 of 53994 relevant lines covered (84.34%)

6357157.87 hits per line

Source Files on job 24993226829.1
  • Tree
  • List 647
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 24993226829
  • 0cd5befd on github
  • Prev Job for on main (#24969843496.1)
  • Next Job for on main (#25007204123.1)
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