Skip to content

Explicit API

Internals of the explicit predictor–corrector backend. Import directly from qpax.explicit only when you specifically want this backend's implementation.

qpax.explicit.pdip.solve_qp

solve_qp(Q: Array, q: Array, A: Array, b: Array, G: Array, h: Array, solver_tol: float = 1e-05, max_iter: int = 30, linear_solver: LinearSolver = LinearSolver.CHOLESKY, return_bad_step: bool = False, sigma: float = 0.125, verbose: bool = False)

Solve a QP using a primal-dual interior point method.

Parameters:

Name Type Description Default
Q Array

(n, n) positive definite matrix

required
q Array

(n,) vector

required
A Array

(m, n) equality constraint matrix

required
b Array

(m,) equality constraint vector

required
G Array

(p, n) inequality constraint matrix

required
h Array

(p,) inequality constraint vector

required
linear_solver LinearSolver

LinearSolver.CHOLESKY or LinearSolver.QR

CHOLESKY

Returns:

Name Type Description
x

(n,) optimal solution

s

(p,) inequality slack variables

z

(p,) inequality dual variables

y

(m,) equality dual variables

converged

int convergence flag

pdip_iter

int number of iterations

qpax.explicit.diff_qp.solve_qp_primal

solve_qp_primal(Q, q, A, b, G, h, solver_tol=1e-05, target_kappa=0.001, max_iter=30)

qpax.explicit.elastic_qp.solve_qp_elastic

solve_qp_elastic(Q, q, G, h, penalty, solver_tol=0.001, max_iter=30)

qpax.explicit.elastic_qp.solve_qp_elastic_primal

solve_qp_elastic_primal(Q, q, G, h, penalty, solver_tol=1e-05, target_kappa=0.001, max_iter=30)

qpax.explicit.pdip_relaxed.relax_qp

relax_qp(Q, q, A, b, G, h, x, s, z, y, solver_tol=1e-05, target_kappa=0.001, max_iter=30, return_bad_step=False, sigma: float = 0.125, verbose: bool = False)