pounce-sensitivity 0.2.0

Sensitivity analysis / parametric NLP warm-start / reduced Hessian for POUNCE — port of upstream Ipopt's sIPOPT contrib (Pirnay, López-Negrete, Biegler 2012).
Documentation

pounce-sensitivity

Sensitivity analysis, parametric NLP warm-start, and reduced-Hessian computation for POUNCE. Port of upstream Ipopt's contrib/sIPOPT/.

Status

Internal crate; Phase A (this commit) — SchurData and PCalculator trait surface plus the Index-flavored implementations. Pure data-shuttling; no IPM interaction yet. The numerical machinery (SensStepCalc, DenseGenSchurDriver, ReducedHessianCalculator, SensApplication) lands in Phases B–E per the plan in pounce#7.

Algorithmic reference

Pirnay, H., López-Negrete, R., and Biegler, L.T. (2012). Optimal sensitivity based on IPOPT. Mathematical Programming Computation, 4(4), 307–331. DOI: 10.1007/s12532-012-0043-2.

DOI verification (Crossref, 2026-05-14): resolves to Springer; title, authors, volume/issue/pages all confirmed.

Upstream source

The port follows the upstream sIPOPT contrib at ref/Ipopt/contrib/sIPOPT/src/ in this repo (EPL-2.0, © Hans Pirnay 2009–2011 per the headers). Phase-A files mapped:

pounce-sensitivity upstream
src/schur_data.rsSchurData trait SensSchurData.hpp (lines 17–177)
src/schur_data/index.rsIndexSchurData SensIndexSchurData.{hpp,cpp}
src/p_calculator.rsPCalculator trait SensPCalculator.hpp (lines 17–133)
src/backsolver.rsSensBacksolver trait SensBacksolver.hpp

Every public item in this crate documents the upstream symbol it mirrors, with line numbers when they're stable.

License

EPL-2.0, matching upstream Ipopt and the sIPOPT contrib.