Skip to content

PDHCG-CQP: A First-Order Solver for Conic QPs - #8

Merged
Lhongpei merged 37 commits into
mainfrom
CONIC
Aug 11, 2026
Merged

PDHCG-CQP: A First-Order Solver for Conic QPs #8
Lhongpei merged 37 commits into
mainfrom
CONIC

Conversation

@Lhongpei

@Lhongpei Lhongpei commented Aug 8, 2026

Copy link
Copy Markdown
Owner

This PR will extend PDHCG to Conic QPs with following formulation:

$$\begin{aligned} \min_{x} \quad & \frac{1}{2}x^\top (Q + R^\top D R) x + c^\top x \\\ \text{s.t.} \quad & \ell_c \le Ax \le u_c, \\\ & Fx + g \in \mathcal{K}_a, \\\ & \ell_v \le x \le u_v, \\\ & x_J \in \mathcal{K}_v \quad \text{for variable-cone blocks } J. \end{aligned}$$
  • $Q$ is the sparse symmetric quadratic component (optional).
  • $R \in \mathbb{R}^{k\times n}$ is a tall low-rank factor (optional, $k$ = rank).
  • $D \in \mathbb{R}^{k\times k}$ is an optional middle matrix that scales / weights / signs the low-rank term. When omitted it defaults to the identity, recovering the standard $Q + R^\top R$ formulation. $D$ may be diagonal, sparse, dense, or indefinite — the backend auto-detects the cheapest runtime representation.
  • Standard SOC, Rotated SOC, Exponential, and Power cones are supported both on variable blocks and through native affine constraints $Fx + g \in \mathcal{K}_a$.

Lhongpei added 7 commits July 29, 2026 10:51
- support native Fx + g in K constraints across the C and Python APIs
- refactor cone runtime, projection, KKT residual, scaling, and partition logic
- enable cone-aware distributed projection for large SOC and RSOC blocks
- replace Python list-of-dicts cone metadata with columnar ConeSpec
- update CVXPY integration, parsers, presolve, permutation, and validation
- add conic regression tests and refresh API documentation
- rename project and GitHub Pages branding from PDHCG-II to PDHCG
- support arbitrary nonempty fixed sections for SOC, RSOC, exponential, and power cones
- add weighted block and grid projection paths for large cones and diagonal-Q proximal steps
- extend stationarity, complementarity, and affine-cone residual computation
- fix distributed SOC projection with fixed endpoints
- preserve pinned cone values when clearing primal warm starts
- extract cone launch and dispatch logic from the PDHG core
- expand fixed-section, KKT, and distributed test coverage
- correct CVXPY dual signs and add regression coverage
- track conic, QCQP, and Fisher C/CUDA tests
- make Fisher benchmark caching portable
- add the 0.3 changelog and migration guide
- document CVXPY integration and updated CLI paths
- bump CMake and Python package versions to 0.3.0
@Lhongpei
Lhongpei merged commit 7a3c783 into main Aug 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant