Skip to main content

Module default

Module default 

Source
Expand description

Default iterate initializer — port of Algorithm/IpDefaultIterateInitializer.{hpp,cpp}.

Bound push, slack init, multiplier init (constant / mu-based / least-square via the EqMultCalculator). Constants below match upstream’s defaults from RegisterOptions.

set_initial_iterates ports the upstream sequence:

  1. Pull x from nlp.get_starting_x and push each component into the interior of [x_l, x_u] per DefaultIterateInitializer::push_to_interior.
  2. Set s = d(x) (evaluated through CQ on a transient iterate) and push it into the interior of [d_l, d_u].
  3. Initialize y_c, y_d:
    • bound_mult_init_method == "constant" — leave at zero (the default y-targets that the linear-solver sweep will refine).
    • bound_mult_init_method == "least-square" — call crate::eq_mult::least_square::LeastSquareMults via the provided aug_solver. Phase 7 default is “constant” to avoid pulling the aug-system through this path on bring-up.
  4. Initialize z_l, z_u, v_l, v_u to bound_mult_init_val (component-wise).

The fully-loaded mu-based / least-square multiplier paths land once LeastSquareMults and the iterate-trace gold tests are online.

Structs§

DefaultIterateInitializer