slsqp_jax.qp.direct¶
Direct null-space projection of equality constraints inside the QP (no proximal term).
slsqp_jax.qp.direct
Direct null-space projection QP strategy (sSQP disabled).
Equality constraints are enforced exactly through the inner solver’s
null-space projector instead of the augmented-Lagrangian penalty. This
avoids the ill-conditioning introduced by the (1/mu) A_eq^T A_eq
proximal term.
- slsqp_jax.qp.direct.solve_qp_direct(hvp_fn, g, A_eq, b_eq, A_ineq, b_ineq, m_eq, m_ineq, max_iter, tol, expand_factor, initial_active_set, kkt_residual, inner_solver, precond_fn=None, cg_tol=None, cg_regularization=1e-06, predicted_active_set=None, use_expand=True, mult_drop_floor=1e-06, ping_pong_threshold=2147483647)[source]¶
Solve the QP with equality constraints enforced via direct projection.
A combined constraint matrix
[A_eq; A_ineq]is formed. Equality rows are permanently active; the active-set loop only adds/drops inequality rows.- Return type:
- Parameters:
hvp_fn (Callable[[Float[Array, 'n']], Float[Array, 'n']])
g (Float[Array, 'n'])
A_eq (Float[Array, 'm_eq n'])
b_eq (Float[Array, 'm_eq'])
A_ineq (Float[Array, 'm_ineq n'])
b_ineq (Float[Array, 'm_ineq'])
m_eq (int)
m_ineq (int)
max_iter (int)
tol (Float[Array, ''] | float)
expand_factor (float)
initial_active_set (Bool[Array, 'm_ineq'] | None)
kkt_residual (Float[Array, ''] | float)
inner_solver (AbstractInnerSolver)
precond_fn (Callable[[Float[Array, 'n']], Float[Array, 'n']] | None)
cg_tol (Float[Array, ''] | float | None)
cg_regularization (float)
predicted_active_set (Bool[Array, 'm_ineq'] | None)
use_expand (bool)
mult_drop_floor (float)
ping_pong_threshold (int)