Skip to main content

Module ipopt_alg

Module ipopt_alg 

Source
Expand description

Main optimization loop — port of Algorithm/IpIpoptAlg.{hpp,cpp}.

Phase 7 ships the loop scaffold matching Optimize() lines 292-563 in upstream. The body invokes:

  1. IterateInitializer::set_initial_iterates
  2. (loop) OutputIterationCheckConvergenceUpdateBarrierParameterUpdateHessianComputeSearchDirectionComputeAcceptableTrialPointAcceptTrialPoint
  3. correct_bound_multiplier (kappa_sigma) per MAIN_LOOP.md §“Bound multiplier reset” lines 1055-1134
  4. exception → SolverReturn mapping per the table in MAIN_LOOP.md.

The NLP handle and search-direction calculator are optional: when both are present, iterate() computes a real Newton step and drives the line search. Without them, iterate() runs the bookkeeping pieces (mu update, hessian update, conv check, kappa_sigma reset) and is exercised by structural unit tests. The full path lights up once pounce-nlp::OrigIpoptNLP lands.

Structs§

IpoptAlgorithm

Functions§

kappa_sigma_clamp
Per-element kappa-sigma clamp — the elementwise arithmetic at the heart of IpIpoptAlg.cpp:correct_bound_multiplier (lines 1090-1133). For each index i: