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

wegamekinglc / Derivatives-Algorithms-Lib / 36253690034
93%

Build:
DEFAULT BRANCH: master
Ran 26 Sep 2026 04:11PM UTC
Jobs 1
Files 302
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

26 Sep 2026 03:56PM UTC coverage: 92.093% (+0.04%) from 92.057%
36253690034

push

github

web-flow
perf: fuse LSMC training and skip regex for literal macros (#442)

* perf(script): fuse and parallelise LSMC training

The LSMC training phase was dominated by a single-threaded backward phase
(~106 ms of ~180 ms for 100k training and 100k pricing paths) and by
zero-filling ~85 MB of path rows on the calling thread (~24 ms).

Backward phase:
- One branch-free sweep per event applies the later day's exercise
  decisions, inducts the holding value, fills the regression set and
  accumulates its count and sums. The random in-the-money mask no
  longer drives branch mispredictions; masked-out paths add +0.0.
- The regression reuses those sums, runs one branch-free
  sum-of-squares pass and one Hankel-moment pass specialised on the
  basis size, and moves the per-path finiteness checks to a rescan
  after a non-finite sum. Validation-degree selection shares one
  statistics and moment pass across all candidate degrees.
- Sweeps and reductions run over fixed 8192-path chunks, summed in
  path order within a chunk and in chunk order across chunks, so the
  result stays independent of the thread count. Helpers join once per
  backward phase and claim chunks through atomics: a pool task group
  costs ~16 us per task on this host, more than a chunk's work.

Training rows are one uninitialised allocation per block; each forward
worker zeroes (and first-touches) its own path range.

On the 100k/100k weekly Bermudan put (32 threads) the valuation drops
from ~176/191 ms (compiled/tree) to ~60/75 ms. Hard-mode PVs and
exercise rates are bitwise unchanged on every probed configuration.
Coefficients fitted on more than 8192 training paths can differ in the
last bits because of the chunked sums; fuzzy AAD PVs moved by <= 5e-15
relative and risks by <= 1.4e-11.

Refs #439

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(bench): time LSMC regressions on an in-the-money mask

The regression benchmark included every path, a perfectly predictabl... (continued)

299 of 310 new or added lines in 4 files covered. (96.45%)

16574 of 17997 relevant lines covered (92.09%)

3296604.37 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
97.9
-0.52% dal-cpp/dal/script/lsmc.cpp
Jobs
ID Job ID Ran Files Coverage
1 36253690034.1 26 Sep 2026 04:11PM UTC 302
92.09
GitHub Action Run
Source Files on build 36253690034
  • Tree
  • List 302
  • Changed 6
  • Source Changed 6
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36253690034
  • a4111e13 on github
  • Prev Build on master (#36239197636)
  • Next Build on master (#36262238937)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc