Expand description
POUNCE algorithm-side core.
Port of Ipopt’s src/Algorithm/: the IteratesVector data
object, the mutable IpoptData state, the IpoptCalculatedQuantities
lazy-cache layer, the KKT subsystem (augmented system, perturbation
handler, full-space PD solver, search-direction calculator), the
line search (filter + backtracking), barrier-update strategies
(monotone now, adaptive in Phase 10), convergence check, iterate
initialization, equality-multiplier estimation, Hessian update
strategies (exact + L-BFGS/SR1 in Phase 8), iteration output,
timing statistics, the algorithm builder, and the main
IpoptAlgorithm::optimize() loop.
NLP scaling (gradient-based objective/constraint scaling) lives
NLP-side in pounce_nlp::orig_ipopt_nlp.
Strategies are wired together by alg_builder::AlgorithmBuilder
per the dependency order documented in
ref/Ipopt/AGENT_REFERENCE/ARCHITECTURE.md §“BuildBasicAlgorithm”.
Re-exports§
pub use application::IpoptApplication;pub use ipopt_cq::IpoptCalculatedQuantities;pub use ipopt_cq::IpoptCqHandle;pub use ipopt_data::IpoptData;pub use ipopt_data::IpoptDataHandle;pub use ipopt_data::PdPerturbations;pub use iterates_vector::IteratesVector;pub use strategy::AlgorithmStrategy;
Modules§
- alg_
builder - Algorithm builder — port of
Algorithm/IpAlgBuilder.{hpp,cpp}. - application
- User-facing application object — port of
Interfaces/IpIpoptApplication.{hpp,cpp}. - conv_
check - Convergence-check strategies — port of
Algorithm/IpConvCheck.hpp,IpOptErrorConvCheck.{hpp,cpp}. Restoration-phase variants live inpounce-restoration. - debug
- Interactive solver debugger — a “pdb for the interior-point loop”.
- debug_
rank - Numerical rank diagnosis of the active-constraint Jacobian.
- eq_mult
- Equality-multiplier estimation — port of
IpEqMultCalculator.hpp,IpLeastSquareMults.{hpp,cpp}. - hess
- Hessian-update strategies — port of
IpHessianUpdater.hpp,IpExactHessianUpdater.{hpp,cpp},IpLimMemQuasiNewtonUpdater.{hpp,cpp}(Phase 8). - init
- Iterate-initialization strategies — port of
Algorithm/IpIterateInitializer.hpp,IpDefaultIterateInitializer.{hpp,cpp},IpWarmStartIterateInitializer.{hpp,cpp}. - intermediate
- Per-iteration “intermediate” context shared with downstream
callers (notably the C-API inspector functions
GetIpoptCurrentIterate/GetIpoptCurrentViolations). - ipopt_
alg - Main optimization loop — port of
Algorithm/IpIpoptAlg.{hpp,cpp}. - ipopt_
cq - Lazy-cache layer — port of
Algorithm/IpIpoptCalculatedQuantities.{hpp,cpp}. - ipopt_
data - Mutable algorithm state — port of
Algorithm/IpIpoptData.{hpp,cpp}. - ipopt_
nlp - NLP traits used by the algorithm — port of
IpNLP.hppandIpIpoptNLP.hpp. - iter_
dump - Per-iteration binary trace dumper for Track-A bit-equivalence validation against upstream Ipopt.
- iterate_
dump - Per-iteration JSONL trace emitter for the studio (issue #68).
- iterates_
vector - Eight-component iterate — port of
Algorithm/IpIteratesVector.{hpp,cpp}. - kkt
- KKT subsystem — port of
Algorithm/IpAugSystemSolver*,IpStdAugSystemSolver*,IpPDPerturbationHandler*,IpPDSystemSolver*,IpPDFullSpaceSolver*,IpSearchDirCalculator*,IpPDSearchDirCalc*. - line_
search - Line-search subsystem — port of
Algorithm/IpLineSearch.hpp,IpBacktrackingLineSearch.{hpp,cpp},IpFilter.{hpp,cpp},IpFilterLSAcceptor.{hpp,cpp},IpBacktrackingLSAcceptor.hpp. Penalty / CG-penalty acceptors (Phase 10) live here too once they land. - mu
- Barrier-parameter update strategies — port of
Algorithm/IpMuUpdate.hpp,IpMonotoneMuUpdate.{hpp,cpp},IpAdaptiveMuUpdate.{hpp,cpp}, and the four oracle files (IpMuOracle.hpp,IpLoqoMuOracle.cpp,IpProbingMuOracle.cpp,IpQualityFunctionMuOracle.cpp). - output
- Iteration output strategies — port of
Algorithm/IpIterationOutput.hpp,IpOrigIterationOutput.{hpp,cpp}. Restoration-phase iteration output (IpRestoIterationOutput) lives inpounce-restoration. - restoration
RestorationPhasetrait — port ofIpRestoPhase.hpp.- sqp
- Phase 5b — active-set SQP algorithm driver.
- strategy
- Algorithm-strategy base trait — port of
IpAlgStrategy.hpp. - timing_
stats - Re-export shim. The canonical
TimingStatisticstype lives inpounce_common::timingso that crates lower in the dep graph (pounce-nlp,pounce-linsol) can populate it without depending onpounce-algorithm. MirrorsAlgorithm/IpTimingStatistics.{hpp,cpp}. - upstream_
options - Auto-generated upstream Ipopt option registrations.
Traits§
- Ipopt
Nlp - Algorithm-side NLP (adds scaling-aware variants and provides the
bound expansion matrices
Px_L,Px_U,Pd_L,Pd_U). Mirrors upstreamIpopt::IpoptNLP. - Nlp
- Lower-level NLP interface (post-
TNLPAdapter). Equality and inequality constraints are already separated; bounds are already classified intox_l_map/x_u_map/ etc.