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

wegamekinglc / Derivatives-Algorithms-Lib / 27509989911
80%
master: 79%

Build:
Build:
LAST BUILD BRANCH: copilot/override-function-gradient-calibration
DEFAULT BRANCH: master
Ran 14 Jun 2026 07:50PM UTC
Jobs 1
Files 202
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

14 Jun 2026 07:38PM UTC coverage: 79.83% (+0.7%) from 79.144%
27509989911

Pull #106

github

wegamekinglc
Phase A Step 5: working AAD-tape Jacobian for LOG_DISCOUNT/swap path

- Implement BuildDiscountCurveT<T_> (LOG_DISCOUNT only; REQUIRE-false on
  others). The Number_-typed curve is constructed directly with the tape-
  registered logDF vector (bypassing FittableCurve_::ApplyDX).
- Add TapeGuard_ RAII (Clear on entry/exit, exception-safe) and ZeroAllAdjoints
  helper (walks the node blocklist, sets every adjoint to 0 between single-
  result reverse sweeps).
- Implement PhaseAJacobian_NativeAAD: one forward recording per Gradient call,
  nRows reverse sweeps via the single-result loop. Column map: solver col j =
  storage node j+1, so Adjoint(logDF[j+1]) reads dResidual_i/dx_j. Reuses
  XCurveJacobian_ (dense storage, sparse-by-row assembly) from CP1.
- Flip EligibleForPhaseA to its real implementation: returns true iff
  LOG_DISCOUNT + DISCOUNT-target + every instrument is Deposit/FRA/Future/Swap
  with useProjectionCurve_==false and starting at the curve anchor. Every fall-
  through emits a NOTICE naming the offending condition; the predicate never
  throws.
- Fix StorageBasisWeightsAt to return RAW storage-node weights (no
  RemapStorageToSolver); InterpBasisWeightsByScheme applies the remap and was
  producing solver-column weights, which broke the Number_-typed LogDfAt
  accumulation.
- Add FloatConvention() accessors on Deposit_/FRA_/Future_/Swap_ for the
  eligibility check.
- Explicit instantiation of DiscountLogDFT_<Number_> in yclogdf.cpp and
  PrecomputeT<Number_> on each Phase A instrument so the linker finds them.
- New tests in test_phase_a_jacobian.cpp (6 tests): AAD-tape Jacobian matches
  two-sided central differences within 1e-9 on non-zero entries; structural
  zeros are exactly 0.0; AAD-tape solve matches bumped node-by-node within 1e-8;
  ineligible parameterization falls back to bumped; FORECAST-target falls
  through to CP1 (matrix matches ANALYTIC_LOG_DISCOUNT); tape isolation across
  two consecutive Gradient calls. All 720 te... (continued)
Pull Request #106: feat: analytic LOG_DISCOUNT curve Jacobian (CP1)

489 of 552 new or added lines in 7 files covered. (88.59%)

68 existing lines in 4 files now uncovered.

5913 of 7407 relevant lines covered (79.83%)

3371902.76 hits per line

Uncovered Changes

Lines Coverage ∆ File
32
90.65
-7.39% dal-cpp/dal/curve/ycinstrument.cpp
15
91.98
2.92% dal-cpp/dal/curve/yclogdf.cpp
12
91.96
0.1% dal-cpp/dal/curve/calibration.cpp
4
40.0
-20.0% dal-cpp/dal/curve/ycinstrument.hpp

Coverage Regressions

Lines Coverage ∆ File
36
90.65
-7.39% dal-cpp/dal/curve/ycinstrument.cpp
23
91.96
0.1% dal-cpp/dal/curve/calibration.cpp
5
91.98
2.92% dal-cpp/dal/curve/yclogdf.cpp
4
40.0
-20.0% dal-cpp/dal/curve/ycinstrument.hpp
Jobs
ID Job ID Ran Files Coverage
1 27509989911.1 14 Jun 2026 07:50PM UTC 202
79.83
GitHub Action Run
Source Files on build 27509989911
  • Tree
  • List 202
  • Changed 11
  • Source Changed 9
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27509989911
  • Pull Request #106
  • PR Base - master (#27500697938)
  • Delete
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