Expand description
Warm-start iterate initializer — port of
IpWarmStartIterateInitializer.{hpp,cpp}. Used when a previous
solve has left a trial point that should be reused.
There are two callers we serve:
- A full primal-dual warm restart installed via
Application::set_warm_start_iterateand consumed by the nextoptimize_tnlp(e.g. the debuggerresolvere-solve):data.curralready carries the previous solve’s iterate, so we keep it, clamp multipliers, and optionally overridemu. - First solves from
OptimizeTNLPthat opt intowarm_start_init_point=yesto forward user-supplied primal/dual seeds viaTNLP::get_starting_point. Heredata.currcarries only dim metadata (uninitialized vectors); we pull seeds from the NLP, push primals/slacks into the bound interior with warm-startbound_push/bound_frac, and then apply the same multiplier clamps.
Wired options today: bound_push, bound_frac,
slack_bound_push, slack_bound_frac, mult_init_max,
target_mu. The remaining knobs (mult_bound_push,
entire_iterate, same_structure) are stored but not yet
consumed.