Skip to content

Jacobian - #2751

Open
kp9991-git wants to merge 29 commits into
lballabio:masterfrom
kp9991-git:Jacobian-pr
Open

kp9991-git wants to merge 29 commits into
lballabio:masterfrom
kp9991-git:Jacobian-pr

Conversation

@kp9991-git

Copy link
Copy Markdown
Contributor

This PR adds the analytical Jacobian to QuantLib:

  1. The common rate helpers compute the sensitivities of their implied quote to the curves analytically with a numerical fallback for unimplemented cases.
  2. These sensitivities are aggregated into curve Jacobians PiecewiseYieldCurve::jacobian() and inverseJacobian().
  3. Global and multi-curve bootstrapping can use analytical Jacobian (opt-in constructor arg)
  4. Cross-curve analytical Jacobians are also available for risk propagation

No existing behaviour changes. Without opt-in, everything works the same way as before. The diffs are minimal and most new code sits under "experimental". Very light changes to the existing code. All analytical calcs are tested against finite differences in unit tests.

The benefits to the user are significant. The global and multicurve bootstrapping is faster with the analytical derivatives but more importantly this enables very fast PV01 calculation through risk propagation rather than naive bumping of every pillar across all dependencies. The speedup is around 15 times in my tests for a simple trade with curve dependencies (it depends on the number of curves, complexity of the trades etc.)

@coveralls

coveralls commented Aug 29, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 75.914% (+0.3%) from 75.63% — kp9991-git:Jacobian-pr into lballabio:master

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.

2 participants