MCPcopy Index your code
hub / github.com/cvxpy/cvxpy

github.com/cvxpy/cvxpy @v1.9.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.9.2 ↗ · + Follow
16,791 symbols 48,305 edges 857 files 4,375 documented · 26% updated 3d agov1.9.1 · 2026-05-26★ 6,274148 open issues

Browse by type

Functions 13,519 Types & classes 3,223 Endpoints 49
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CVXPY

Build Status PyPI - downloads Conda - downloads Discord Benchmarks OpenSSF Scorecard

The CVXPY documentation is at cvxpy.org.

We are building a CVXPY community on Discord. Join the conversation! For issues and long-form discussions, use Github Issues and Github Discussions.

Contents - Installation - Getting started - Issues - Community - Contributing - Team - Citing

CVXPY is a Python-embedded modeling language for convex optimization problems. It allows you to express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers.

For example, the following code solves a least-squares problem where the variable is constrained by lower and upper bounds:

import cvxpy as cp
import numpy

# Problem data.
m = 30
n = 20
numpy.random.seed(1)
A = numpy.random.randn(m, n)
b = numpy.random.randn(m)

# Construct the problem.
x = cp.Variable(n)
objective = cp.Minimize(cp.sum_squares(A @ x - b))
constraints = [0 <= x, x <= 1]
prob = cp.Problem(objective, constraints)

# The optimal objective is returned by prob.solve().
result = prob.solve()
# The optimal value for x is stored in x.value.
print(x.value)
# The optimal Lagrange multiplier for a constraint
# is stored in constraint.dual_value.
print(constraints[0].dual_value)

With CVXPY, you can model * convex optimization problems, * mixed-integer convex optimization problems, * geometric programs, * quasiconvex programs, and * nonlinear programs

CVXPY is not a solver. It relies upon the open source solvers Clarabel, SCS, OSQP and HiGHS. Additional solvers are available, but must be installed separately.

CVXPY began as a Stanford University research project. It is now developed by many people, across many institutions and countries.

Installation

CVXPY is available on PyPI, and can be installed with

pip install cvxpy

CVXPY can also be installed with conda, using

conda install -c conda-forge cvxpy

CVXPY has the following dependencies:

  • Python >= 3.11
  • Clarabel >= 0.5.0
  • OSQP >= 1.0.0
  • SCS >= 3.2.4.post1
  • NumPy >= 2.0.0
  • SciPy >= 1.13.0
  • highspy >= 1.11.0
  • sparsediffpy >= 0.2.2

For detailed instructions, see the installation guide.

Getting started

To get started with CVXPY, check out the following: * official CVXPY tutorial * example library * API reference

Issues

We encourage you to report issues using the Github tracker. We welcome all kinds of issues, especially those related to correctness, documentation, performance, and feature requests.

For basic usage questions (e.g., "Why isn't my problem DCP?"), please use StackOverflow instead.

Community

The CVXPY community consists of researchers, data scientists, software engineers, and students from all over the world. We welcome you to join us!

  • To chat with the CVXPY community in real-time, join us on Discord.
  • To have longer, in-depth discussions with the CVXPY community, use Github Discussions.
  • To share feature requests and bug reports, use Github Issues.

Please be respectful in your communications with the CVXPY community, and make sure to abide by our code of conduct.

Contributing

We appreciate all contributions. You don't need to be an expert in convex optimization to help out.

You should first install CVXPY from source. Here are some simple ways to start contributing immediately: * Read the CVXPY source code and improve the documentation, or address TODOs * Enhance the website documentation * Browse the issue tracker, and look for issues tagged as "help wanted" * Polish the example library * Add a benchmark

If you'd like to add a new example to our library, or implement a new feature, please get in touch with us first to make sure that your priorities align with ours.

Contributions should be submitted as pull requests. A member of the CVXPY development team will review the pull request and guide you through the contributing process.

Before starting work on your contribution, please read the contributing guide.

Team

CVXPY is a community project, built from the contributions of many researchers and engineers.

CVXPY is developed and maintained by Steven Diamond, Akshay Agrawal, Riley Murray, Philipp Schiele, Bartolomeo Stellato, and Parth Nobel, with many others contributing significantly. A non-exhaustive list of people who have shaped CVXPY over the years includes Stephen Boyd, Eric Chu, Robin Verschueren, Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, Chris Dembia, and William Zhang.

For more information about the team and our processes, see our governance document.

Citing

If you use CVXPY for academic work, we encourage you to cite our papers. If you use CVXPY in industry, we'd love to hear from you as well, on Discord or over email.

Core symbols most depended-on inside this repo

Shape

Method 8,564
Function 4,955
Class 3,186
Route 49
Enum 37

Languages

C++59%
Python41%

Modules by API surface

cvxpy/cvxcore/python/cvxcore_wrap.cxx897 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/NEON/PacketMath.h773 symbols
cvxpy/tests/test_conic_solvers.py547 symbols
cvxpy/cvxcore/python/cvxcore.py297 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/NEON/TypeCasting.h283 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/AltiVec/PacketMath.h281 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/AVX512/PacketMath.h210 symbols
cvxpy/cvxcore/include/Eigen/src/Core/MathFunctions.h193 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/AVX/PacketMath.h192 symbols
cvxpy/cvxcore/include/Eigen/src/Core/functors/UnaryFunctors.h191 symbols
cvxpy/cvxcore/include/Eigen/src/Core/arch/SSE/PacketMath.h190 symbols
cvxpy/cvxcore/include/Eigen/src/Core/util/Meta.h184 symbols

For agents

$ claude mcp add cvxpy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page