Skip to main content

Crate pounce_algorithm

Crate pounce_algorithm 

Source
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 in pounce-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.hpp and IpIpoptNLP.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 in pounce-restoration.
restoration
RestorationPhase trait — port of IpRestoPhase.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 TimingStatistics type lives in pounce_common::timing so that crates lower in the dep graph (pounce-nlp, pounce-linsol) can populate it without depending on pounce-algorithm. Mirrors Algorithm/IpTimingStatistics.{hpp,cpp}.
upstream_options
Auto-generated upstream Ipopt option registrations.

Traits§

IpoptNlp
Algorithm-side NLP (adds scaling-aware variants and provides the bound expansion matrices Px_L, Px_U, Pd_L, Pd_U). Mirrors upstream Ipopt::IpoptNLP.
Nlp
Lower-level NLP interface (post-TNLPAdapter). Equality and inequality constraints are already separated; bounds are already classified into x_l_map / x_u_map / etc.