Skip to content

qoco-org/qoco-python

Repository files navigation

QOCO Python

drawing

PyPI Downloads Documentation License

This repository contains the python wrapper for QOCO and the code generator QOCOGEN.

QOCOGEN is a code generator which takes in an second-order cone program problem family and generates a customized C solver (called qoco_custom) for the specified problem family which implements the same algorithm as QOCO. This customized solver is library-free, only uses static memory allocation, and can be a few times faster than QOCO.

Installation and Usage

You can install qoco-python by running pip install qoco.

For instructions on using the wrapper for QOCO, refer to API, and simple example for an example of solving a simple SOCP with the python wrapper.

For instructions on using QOCOGEN, refer to the documentation.

Tests

To run tests, first install cvxpy and pytest

pip install cvxpy pytest

and execute:

pytest

Bug reports

File any issues or bug reports using the issue tracker.

Citing

@misc{chari2025qoco,
  title         = {QOCO: A Quadratic Objective Conic Optimizer with Custom Solver Generation},
  author        = {Chari, Govind M and A{\c{c}}{\i}kme{\c{s}}e, Beh{\c{c}}et},
  year          = {2025},
  eprint        = {2503.12658},
  archiveprefix = {arXiv},
  primaryclass  = {math.OC},
  url           = {https://arxiv.org/abs/2503.12658}
}

License

QOCO is licensed under the BSD-3-Clause license.