Algorithm¶
Standard form¶
PDHCG solves the convex quadratic conic program
The last condition applies to each variable-cone block \(J\). Here \(Q\) is the sparse quadratic component, and \(R^\top D R\) is an optional structured low-rank component. The full Hessian \(H=Q+R^\top D R\) is positive semidefinite; \(D\) defaults to the identity when omitted.
The vectors \(\ell_c,u_c\) and \(\ell_v,u_v\) specify constraint and variable bounds, which may be infinite. The cones \(\mathcal K_a\) and \(\mathcal K_v\) may contain SOC, rotated SOC, exponential, power, and positive-semidefinite blocks.
Primal–dual form¶
Define the objective and the variable and row-constraint sets:
Let \(y\) be the dual variable for \(Ax\in\mathcal B\), and let \(z\in\mathcal K_a^*\) be the dual variable for \(Fx+g\in\mathcal K_a\). For \(\mathcal S\in\{\mathcal X,\mathcal B\}\), the support function is
and the dual cone is \(\mathcal K_a^*=\{z:\langle z,w\rangle\ge0\text{ for all }w\in\mathcal K_a\}\). The problem has the saddle-point form
where
Maximization over \(y\) enforces the row bounds, and maximization over \(z\) enforces the affine cone constraints. Variable bounds and variable cones remain in the primal domain \(\mathcal X\).
Primal–dual updates¶
The base PDHG iteration updates \(x\) first, then updates \(y\) and \(z\) using the extrapolated primal point. Choose \(\tau,\sigma>0\) satisfying
Primal update¶
The dual variables shift the input to the quadratic proximal subproblem:
This subproblem retains the quadratic objective and the variable constraints. Its Hessian \(H+\tau^{-1}I\) is positive definite, so the exact proximal point is unique.
M-norm formulation¶
Completing the square gives
The exact primal point is the weighted projection \(\Pi_{\mathcal X}^M(r^k)\), where
Thus the quadratic curvature enters the projection through \(M\). This is the weighted-projection viewpoint of Section 4.1 of the Conic QP paper. The representation does not require forming \(M^{-1}\): its evaluation depends on the structure of \(H\).
Diagonal quadratic objectives¶
If the full Hessian is \(H=\operatorname{diag}(h)\), then
For \(R=0\), this is the diagonal-\(Q\) case. On box-constrained blocks, the weighted projection reduces to clipping:
On variable-cone blocks, use the corresponding diagonal-metric cone projection \(\Pi_{\mathcal K_v}^{M_J}(r_J^k)\). The metric is essential for coupled cone coordinates; Appendix C of the paper gives the weighted projection formulas. The implementation uses these specialized projections where supported; PSD variable blocks currently use the inner solver.
Inner iterations¶
For a general sparse or low-rank \(H\), the default inner mode approximates the
same proximal point using projected iterations. Starting from \(u^0=x^k\), a
basic inner step is
PDHCG uses safeguarded Barzilai–Borwein step lengths and stops when the inner accuracy target is reached or the inner iteration limit is met. The final inner iterate supplies \(x^{k+1}\). Products are evaluated as \(Hu=Qu+R^\top(D(Ru))\), preserving the sparse and low-rank representation. See inner solver parameters for accuracy and iteration controls.
Linearized update¶
The linearized mode changes the proximal metric. Choose a curvature bound
\(L\geq\lambda_{\max}(H)\) and add the term
to the original primal subproblem. The resulting projection metric is
The quadratic terms combine into a scalar Hessian, so completing the square now gives one Euclidean projection:
This update solves the modified proximal subproblem defined by the chosen
metric. The implementation uses a safeguarded spectral estimate for \(L\).
NonDiagonalQuadraticMode
selects inner or linearized for non-diagonal quadratic objectives.
After the primal update, form the extrapolated point for both dual updates:
Dual updates¶
For the bounded linear rows, let \(s^{k+1}=A\bar x^{k+1}\). Then
Here \(\Pi_{\mathcal B}\) clips each coordinate to \([\ell_c,u_c]\). For the affine cone constraints,
The cone projection can also be evaluated using the primal cone:
Thus each base iteration combines a quadratic proximal solve, products with \(A,A^\top,F,F^\top\), and projections onto the row bounds and cone blocks.
Cone-preserving scaling¶
The default scaling broadcasts one positive scale over each variable or affine cone block \(B\). From the candidate coordinate scales \(d_j\), define
| Scaling phase | Block size ≤ 8 | Block size > 8 |
|---|---|---|
| Ruiz | \(d_{\max}\) | \(d_{\mathrm{rms}}\) |
| Pock–Chambolle | \(d_{\mathrm{rms}}\) | \(\sqrt{d_{\max}d_{\mathrm{rms}}}\) |
UseConePreservingScaling controls
this aggregation. When it is disabled, PSD blocks retain cone-compatible
scaling through \(s_{ij}=d_i d_j\).
Infeasibility certificates¶
PDHCG detects infeasibility by checking primal and dual certificate rays against the following systems.
Primal infeasibility: dual ray¶
Dual infeasibility: primal ray¶
References¶
-
Hongpei Li, Yicheng Huang, Huikang Liu, Dongdong Ge, and Yinyu Ye. GPU-Accelerated Conic Quadratic Programming with Local Linear Convergence under Strict Complementarity, 2026.
-
Yicheng Huang, Wanyu Zhang, Hongpei Li, Dongdong Ge, Huikang Liu, and Yinyu Ye. A Restarted Primal-Dual Hybrid Conjugate Gradient Method for Large-Scale Quadratic Programming, INFORMS Journal on Computing, 2025.
-
Hongpei Li, Yicheng Huang, Huikang Liu, Dongdong Ge, and Yinyu Ye. PDHCG-II: An Enhanced Version of PDHCG for Large-Scale Convex QP, Section 5, 2026.
For the recommended PDHCG citation and copyable BibTeX, see Citation.