Expand description
Powell-damped BFGS Hessian approximation for SQP (Powell
1978, Numerical Analysis Dundee 1977). Used when
SqpOptions::hessian = DampedBfgs — the QP subproblem’s
Hessian comes from this rank-2-updated matrix instead of
nlp.eval_hess_lag.
Powell’s damping rule guarantees positive-definiteness of
every iterate, so the QP solver doesn’t have to engage
inertia control to keep ∇²L-quadratic models PD. The
damping factor θ ∈ [0, 1] interpolates between the raw
BFGS y = ∇L_new − ∇L_old and the conservative B·s:
if sᵀy ≥ 0.2 · sᵀ B s : θ = 1 (standard BFGS)
else : θ = 0.8 · sᵀ B s / (sᵀ B s − sᵀy)
y_damp = θ y + (1 − θ) B s
B_new = B − (Bs · sᵀB) / (sᵀ B s)
+ (y_damp · y_dampᵀ) / (sᵀ y_damp)Storage is dense n × n (lower-triangle row-major); exposed
to pounce-qp as a fully-populated Triplet over the upper
triangle (1-based row/col).