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

wegamekinglc / Derivatives-Algorithms-Lib / 28311675928

28 Jun 2026 04:45AM UTC coverage: 81.523% (+0.03%) from 81.491%
28311675928

Pull #180

github

wegamekinglc
Add interp hint-and-scan and fuse CG/BCG Krylov sweeps

- InterpLinearImplX: optional size_t* hint caches the last bracket index;
  repeated evaluations on monotonic x scan linearly from the hint instead
  of binary-searching every call, with a LowerBound fallback for safety.
  Interp1Linear_ and Cubic1_ carry a mutable lastIndex_ and pass &lastIndex_.
- CG/BCG (bcg.cpp): fuse PrepareDirection_ (p*=m; p+=z  ->  p = z + m*p) and
  UpdateSolution_ (x+=alpha*p; r-=alpha*Ap in one sweep) into single-pass AXPY
  loops. Per-element FP ops unchanged, so results are byte-identical.
- P8 (banded TriMultiply fusion) was attempted but reverted: under -O3
  -march=native the single-expression fusion gets FMA-contracted, breaking
  byte-identity on JointCalibrationTest; a volatile-accumulator variant stays
  byte-identical but runs ~2.3x slower than the original three-pass form.

interp_perf: Cubic 50.1->37.9 us (-24%), Linear 46.1->36.6 us (-21%).
krylov_perf: CGSolve 16.3->14.4 us (-12%), BCGSolve 21.7->19.0 us (-12%).

Co-Authored-By: Claude <noreply@anthropic.com>
Pull Request #180: perf: fuse kernel sweeps (interp hint + CG/BCG + banded TriMultiply)

48 of 51 new or added lines in 4 files covered. (94.12%)

16 existing lines in 2 files now uncovered.

6380 of 7826 relevant lines covered (81.52%)

3211979.42 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

79.22
/dal-cpp/dal/math/interp/interpcubic.cpp


Source Not Available

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