Skip to content

docs: reconcile documentation with current implementation#231

Merged
wegamekinglc merged 19 commits into
masterfrom
codex/repository-doc-reconciliation
Jul 15, 2026
Merged

docs: reconcile documentation with current implementation#231
wegamekinglc merged 19 commits into
masterfrom
codex/repository-doc-reconciliation

Conversation

@wegamekinglc

Copy link
Copy Markdown
Owner

Summary

  • reconcile the 33-file published-document baseline against current source, tests, bindings, examples, benchmarks, and build workflows
  • update README/navigation, architecture, quantitative methodology, XCCY calibration, and public C++/Python/Excel capability boundaries
  • move five historical implementation artifacts out of published docs and add durable specification, plan, and 33-row audit records

Test plan

  • python3 .github/scripts/check_docs.py — 28 current-state Markdown files
  • build/Release-linux/dal-cpp/dal_cpp_tests — 985 passed
  • build/Release-linux/dal-public/dal_public_tests — 56 passed
  • targeted Python curve/XCCY suites — 24 passed
  • three C++ XCCY examples and Python example 007
  • xccy_perf — exactly 24 unique timing rows
  • 33-row audit completeness, Markdown-only scope, protected-path, and full diff checks
  • fresh whole-branch review and closure review — no remaining findings

Copilot AI review requested due to automatic review settings July 15, 2026 18:03
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@coveralls

coveralls commented Jul 15, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 29444334518

Coverage remained the same at 88.399%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 9249
Covered Lines: 8176
Line Coverage: 88.4%
Coverage Strength: 2859280.24 hits per line

💛 - Coveralls

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documentation-only reconciliation pass to bring DAL’s published Markdown set (plus supporting .codex audit artifacts) back into agreement with the current C++/Python/Excel implementation—especially around cross-currency (XCCY) pricing/calibration, Jacobian/inverse conventions, and updated methodology details.

Changes:

  • Updated root/docs navigation and component READMEs to reflect current XCCY capabilities and surface-specific availability.
  • Refreshed quantitative methodology notes (AAD tape rewind semantics, interpolation, matrix algorithms, RNG seeking) to match current behavior.
  • Added/updated .codex specification/plan/review artifacts to record the audit scope, evidence, and dispositions.

Reviewed changes

Copilot reviewed 17 out of 22 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
README.md Adds XCCY capability mention and links to XCCY examples/methodology.
docs/README.md Fixes heading hierarchy and refreshes indexed methodology summaries.
docs/public-api.md Clarifies staged vs joint XCCY API boundaries across C++/Python/Excel.
docs/methodology/yield_curve_jacobian.md Expands joint XCCY Jacobian/effective-inverse semantics and availability notes.
docs/methodology/xccy_calibration.md Expands fixing snapshot rules, matrix semantics, surface availability, examples, and perf notes.
docs/methodology/random.md Updates RNG SkipTo/clone/branch semantics and MRG32 caveats.
docs/methodology/matrix.md Updates Thomas/Cholesky/band complexity and regularization narrative.
docs/methodology/interpolation.md Tightens linear/cubic descriptions, formulas, and boundary-condition semantics.
docs/methodology/aad.md Clarifies Rewind vs RewindToMark checkpoint semantics.
docs/experimental/replicate-ptirds-single-currency-curve.md Clarifies calendar reproduction and neutralizes comparison language.
docs/architecture.md Documents immutable market-fixing snapshot ownership and XCCY calibration flow branching.
dal-python/README.md Updates Python testing inventory and staged vs joint XCCY exposure semantics.
dal-excel/README.md Clarifies snapshot rules and staged vs joint worksheet visibility of matrices/ranges.
CHANGELOG.md Refreshes capability bullets/wording for current XCCY and Jacobian coverage.
.codex/artifacts/specs/repository-documentation-reconciliation.md Adds reconciliation specification and acceptance criteria.
.codex/artifacts/specs/2026-07-12-zero-rate-parameterization-design.md Stores historical design artifact outside published docs.
.codex/artifacts/specs/2026-07-12-ycinstrument-pricing-performance-design.md Stores historical design artifact outside published docs.
.codex/artifacts/reviews/repository-documentation-reconciliation.md Records evidence-backed 33-row disposition audit and verification gates.
.codex/artifacts/plans/2026-07-15-repository-documentation-reconciliation.md Implementation plan for the documentation reconciliation work.
.codex/artifacts/plans/2026-07-12-zero-rate-parameterization.md Stores historical implementation plan artifact outside published docs.
.codex/artifacts/plans/2026-07-12-ycinstrument-pricing-performance.md Stores historical implementation plan artifact outside published docs.
.codex/artifacts/plans/2026-07-12-unified-yield-curve-interpolation-aad.md Stores historical implementation plan artifact outside published docs.

Comment thread docs/methodology/xccy_calibration.md Outdated
Comment on lines +192 to +196
| Surface | Staged XCCY | Joint XCCY |
|---------|-------------|------------|
| Core/public C++ | Full options, forward Jacobian, and effective inverse | Full options and both top-level matrices |
| Python | Default staged solve with market/FX-forward and fit diagnostics; no staged matrix bindings | Options, named ranges, forward Jacobian, and effective inverse |
| Excel | Basis handle and fit diagnostics; no staged matrix views | Options plus forward-Jacobian/range views; no effective-inverse worksheet getter |
Comment thread docs/methodology/random.md Outdated
Comment on lines 238 to 242
| `RNGType_` | Implementation | Period / structure | `SkipTo` |
|------------|-----------------------|----------------------------------------------|-----------------------------------------------------|
| `IRN` | `ShuffledIRN_<55,31,128>` | Knuth-style lagged additive (IRN55) with shuffling, modulus $2^{30}$ | No-op (re-seed via `Branch`/`Clone` for substreams) |
| `MRG32` | `MRG32k32a_` | L'Ecuyer combined multiple recursive (MRG32k32a), periods $\approx 2^{191}$ | Matrix exponentiation of the recurrence |
| `IRN` | `ShuffledIRN_<55,31,128>` | Knuth-style lagged additive (IRN55) with shuffling, modulus $2^{30}$ | No-op; `Clone` restarts from the original seed and `Branch` creates another seeded generator |
| `MRG32` | `MRG32k32a_` | L'Ecuyer combined multiple recursive (MRG32k32a), periods $\approx 2^{191}$ | Matrix jump; fresh-generator `FillUniform` replay at even path offsets only; no normal-path replay |

Comment thread docs/methodology/interpolation.md Outdated
Comment on lines +109 to +113
| `order_` | Boundary condition |
|----------|------------------------------------------------------------------------------------------|
| 1 | `lhs` pins $f'(x_1)$; `rhs` pins $f'(x_N)$ to its respective `value_` |
| 2 | `lhs` pins $f''(x_1)$; `rhs` pins $f''(x_N)$ to its respective `value_` |
| 3 | each endpoint segment's third derivative is pinned to the respective `lhs`/`rhs` `value_` |
Comment on lines +112 to +119
| Input | Authority | Output |
|------------------------|------------------------------------------------------------------------|---------------------------------------------------------------------------|
| Published Markdown set | `.github/scripts/check_docs.py::DOCS` | One 33-row disposition matrix |
| C++ surface | Core/public headers and generated enums | Exact types, constants, ownership, and solver contracts |
| Python surface | `dal-python/src/bindings/`, `dal-python/src/dal/`, tests, examples | Callable names, result properties, and supported workflows |
| Excel surface | `dal-excel/src/`, interface markup, generated help, smoke tests | Worksheet functions, settings, selectors, and documented limitations |
| Build/runtime surface | CMake, presets, scripts, workflows, web source | Current setup, ownership, execution, and CI descriptions |
| Numerical behavior | Methodology implementation plus independent tests | Correct formulas, matrix semantics, tolerances, and applicability |
Comment on lines +88 to +90
x_i=\frac{b_i-c_{i-1}x_{i-1}}{\beta_i},
\qquad
x_{i-1}\leftarrow x_{i-1}-\frac{a_{i-1}}{\beta_{i-1}}x_i
wegamekinglc and others added 3 commits July 16, 2026 02:26
The linear interpolator (dal-cpp/dal/math/interp/interplinear.cpp) does not
enforce a minimum knot count -- unlike log-linear and cubic, which gate on
size. It also checks monotonicity with std::less_equal, so it accepts equal
(duplicate) abscissae. The prior text overstated both contracts: the Linear
section claimed "Requires N >= 2" and the Common Interface stated
universally that abscissae "must be strictly increasing". Drop the false
minimum-size claim for linear and soften the shared monotonicity statement
to non-decreasing, which is the true common floor (cubic and log-linear
keep their stricter scheme-specific requirements).

Co-Authored-By: Claude <noreply@anthropic.com>
@wegamekinglc wegamekinglc merged commit dad8a0e into master Jul 15, 2026
55 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants