SQP Settings and Status
Settings
| Field | Default | Description |
|---|---|---|
globalization_strategy | LINE_SEARCH_FILTER | Full-step, L1 line-search, or filter line-search strategy. |
hessian_approximation | GAUSS_NEWTON | Exact Lagrangian Hessian or Gauss-Newton approximation. |
eps_prim | 1e-6 | Primal-step termination threshold. |
eps_dual | 1e-4 | Dual-step termination threshold. |
max_iter | 1000 | Maximum SQP iterations. |
line_search_max_iter | 100 | Maximum line-search iterations per SQP step. |
min_alpha | 1e-4 | Minimum accepted step size. |
regularize_hessian | false | Enable Gershgorin-based Hessian regularization. |
verbose | false | Print iteration progress and final status. |
Additional fields control line-search, filter, watchdog, and elastic-mode behavior. Defaults are defined by laopt::sqp_settings_t<Scalar> in laopt/solvers/sqp_solver.hpp.
Status
| Value | Meaning |
|---|---|
SOLVED | Convergence criteria were satisfied. |
MAX_ITER_REACHED | The iteration limit was reached. |
INFEASIBLE | The problem was reported infeasible. |
NON_CONVEX_QP | A QP subproblem was reported non-convex. |
QP_SOLVER_ERROR | The selected QP backend returned an unhandled error. |
UNSOLVED | The solver has not produced a result. |
INVALID_SETTINGS | One or more settings failed validation. |
solver.info() returns the status, SQP iteration count, and accumulated QP iteration count. The primal and dual solutions are available through primal(), dual(), and dual_bounds().