awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
cvxpy avatar

cvxpy/cvxpy

0
View on GitHub↗
6,257 stars·1,182 forks·C++·Apache-2.0·25 viewswww.cvxpy.org↗

Cvxpy

CVXPY is a Python-embedded domain-specific language for modeling and solving convex optimization problems using natural mathematical syntax. It is built on a disciplined convex programming framework that automatically enforces convexity rules, ensuring that problems formulated by the user are valid for convex solvers. The project also functions as a multi-solver optimization interface, abstracting away backend details and dispatching problems to specialized solvers like ECOS, SCS, and Gurobi without manual configuration.

Beyond standard convex optimization, CVXPY extends its reach to geometric programming, quasiconvex optimization, and mixed-integer convex problems. It includes a disciplined nonlinear programming grammar that allows users to model nonlinear programs and solve them with compatible solvers such as IPOPT and KNITRO. The framework also supports sensitivity analysis by computing derivatives of optimal solutions with respect to problem parameters, and it enables efficient re-solving through symbolic parameter rebinding, where parameter values can be updated without recompiling the entire expression graph.

The library provides tools for formulating and solving a wide range of optimization problems, including least-squares, portfolio optimization, and machine learning model fitting such as ridge, lasso, logistic regression, and support vector machines. Users can define variables, impose constraints, set parameters, and retrieve optimal values and dual variables after solving. Additional capabilities include solver selection, solver option configuration, warm starting, and benchmarking solver performance. CVXPY can be installed via pip, conda, or from source, and it supports adding custom solver backends through a defined interface.

Features

  • Disciplined Convex Programming Compilers - Forms the core compilation engine that translates user expressions into solver-ready canonical form.
  • Embedded Domain-Specific Languages - A Python-embedded domain-specific language for modeling and solving convex optimization problems using natural syntax.
  • Modeling Frameworks - Provides a domain-specific language for modeling convex optimization problems in natural mathematical syntax.
  • Implicit Differentiation Engines - Provides sensitivity analysis by computing derivatives of optimal solutions with respect to problem parameters.
  • Convex Optimization Solvers - Provides a Python-embedded DSL for formulating and solving convex optimization problems using natural syntax.
  • Disciplined Convex Programming Frameworks - Automatically enforces convexity rules through a disciplined convex programming framework.
  • Mathematical Optimization Solving - Finds the optimal value of an objective function subject to defined constraints and variables.
  • Optimization Expression Functions - Provides atomic mathematical functions like exp, log, and sqrt for use within optimization expressions.
  • Optimization Variable Declarations - Declares symbolic variables that represent unknowns in convex optimization problems.
  • Symbolic Parameter Declarations - Declares symbolic parameters whose values can be changed without redefining the entire optimization problem.
  • Optimization Constraint Enforcement - Adds equality, inequality, and other constraints to restrict the feasible solution space.
  • Solver-Agnostic Optimization Interfaces - Abstracts away backend details and dispatches problems to specialized solvers like ECOS, SCS, and Gurobi.
  • Optimal Value Retrieval - Retrieves computed optimal variable values and Lagrange multipliers after solving optimization problems.
  • Solver Dispatchers - Automatically selects the most specialized solver for a problem type or allows manual override.
  • Convex Optimization Formulations - Ships built-in formulations for ridge, lasso, logistic regression, and SVM as convex optimization problems.
  • Convex Model Fitting - Fits regression and classification models like ridge, lasso, logistic, and SVM as convex optimization problems.
  • Quasiconvex Optimization Solvers - Handles quasiconvex objectives and constraints by transforming them into sequences of convex subproblems.
  • Sensitivity Analysis - Computes derivatives of optimal solutions with respect to problem parameters for sensitivity analysis.
  • Portfolio Optimization - Constructs and solves mean-variance, entropic, and risk-based portfolio allocation problems as convex programs.
  • Geometric Program Formulations - Formulates and solves geometric programs using declarative syntax that converts non-convex forms to convex ones.
  • Geometric Program Log-Transformations - Transforms geometric programs into convex form using logarithmic variable changes for solver compatibility.
  • Mathematical Solution Derivation - Computes derivatives of optimal solutions with respect to problem parameters for sensitivity analysis.
  • Mixed-Integer Convex Solvers - Supports integer and binary variables alongside convex objectives and constraints for combinatorial problems.
  • Mixed-Integer Canonicalization Engines - Transforms mixed-integer problems into forms accepted by solvers while preserving convex structure.
  • Geometric Programming Tools - Formulates and solves geometric programs using disciplined rules that convert non-convex forms to convex ones.
  • Solver Option Configurations - Pass solver-specific parameters like iteration limits and accuracy tolerances through keyword arguments.
  • Nonlinear Optimization Solvers - Formulates and solves nonlinear optimization problems using disciplined nonlinear programming techniques.
  • Disciplined Grammar Frameworks - Extends convex optimization to nonlinear programming using a disciplined grammar for expression validation.
  • Disciplined Nonlinear Programming Grammars - Extends convex optimization to nonlinear programs using a disciplined grammar with solvers like IPOPT and KNITRO.
  • Ordinary Least Squares - Minimizes the sum of squared residuals subject to box constraints by constructing a convex objective.
  • Quasiconvex Optimization Solvers - Solves quasiconvex optimization problems by transforming them into sequences of convex subproblems.
  • Quasiconvex Program Solvers - Supports quasiconvex objectives and constraints by transforming them into sequences of convex subproblems.
  • Quasiconvex Bisection Engines - Solves quasiconvex programs by iterating convex feasibility subproblems with bisection search.
  • Custom Solver Integrations - Add a user-defined solver by subclassing the QP or conic solver interface.
  • Data Science - Modeling language for convex optimization.
  • Data Science and Databases - Modeling language for convex optimization problems.
  • Scientific Computing Libraries - Modeling language for convex optimization problems.

Star history

Star history chart for cvxpy/cvxpyStar history chart for cvxpy/cvxpy

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does cvxpy/cvxpy do?

CVXPY is a Python-embedded domain-specific language for modeling and solving convex optimization problems using natural mathematical syntax. It is built on a disciplined convex programming framework that automatically enforces convexity rules, ensuring that problems formulated by the user are valid for convex solvers. The project also functions as a multi-solver optimization interface, abstracting away backend details and dispatching problems to specialized solvers like…

What are the main features of cvxpy/cvxpy?

The main features of cvxpy/cvxpy are: Disciplined Convex Programming Compilers, Embedded Domain-Specific Languages, Modeling Frameworks, Implicit Differentiation Engines, Convex Optimization Solvers, Disciplined Convex Programming Frameworks, Mathematical Optimization Solving, Optimization Expression Functions.

What are some open-source alternatives to cvxpy/cvxpy?

Open-source alternatives to cvxpy/cvxpy include: robotlocomotion/drake — Drake is a robotics simulation framework and control system modeling tool used for designing, simulating, and… dcajasn/riskfolio-lib — Riskfolio-Lib is a Python portfolio optimization library and convex risk management tool. It provides a framework for… julianlsolvers/optim.jl — Optim.jl is a numerical optimization library for the Julia programming language, providing a comprehensive framework… keras-team/keras — Keras is a high-level deep learning framework designed for constructing and training neural networks through the… numpy/numpy — NumPy is a foundational library for scientific computing in Python, providing a comprehensive framework for managing… pandas-dev/pandas — Pandas is a high-performance data analysis library that provides a comprehensive framework for manipulating, cleaning,…

Open-source alternatives to Cvxpy

Similar open-source projects, ranked by how many features they share with Cvxpy.
  • robotlocomotion/drakeRobotLocomotion avatar

    RobotLocomotion/drake

    3,910View on GitHub↗

    Drake is a robotics simulation framework and control system modeling tool used for designing, simulating, and verifying the dynamics of complex robotic systems. It functions as a multibody dynamics simulator and a mathematical optimization library, providing a suite of algorithms for trajectory optimization and the simulation of articulated robots. The framework is distinguished by its block-diagram system for composing dynamical subsystems and its ability to formulate and solve diverse mathematical programs, including linear, quadratic, and nonconvex nonlinear problems. It supports specializ

    C++drakerobotics
    View on GitHub↗3,910
  • dcajasn/riskfolio-libdcajasn avatar

    dcajasn/Riskfolio-Lib

    3,784View on GitHub↗

    Riskfolio-Lib is a Python portfolio optimization library and convex risk management tool. It provides a framework for calculating optimal asset allocations using convex risk measures and mathematical programming solvers, supporting linear, quadratic, and semidefinite programming. The library features a hierarchical risk parity framework and financial asset clustering tools to group similar instruments and improve diversification. It includes a portfolio backtesting engine for simulating investment strategies using historical data and cross-validation. The system covers a broad range of quant

    C++asset-allocationconvex-optimizationcvar-optimization
    View on GitHub↗3,784
  • julianlsolvers/optim.jlJuliaNLSolvers avatar

    JuliaNLSolvers/Optim.jl

    1,201View on GitHub↗

    Optim.jl is a numerical optimization library for the Julia programming language, providing a comprehensive framework for minimizing or maximizing univariate and multivariate functions. It offers a suite of tools for solving both constrained and unconstrained mathematical problems, utilizing a variety of gradient-based, derivative-free, and stochastic search methods. The library distinguishes itself through a modular architecture that leverages language-level multiple dispatch to automatically select efficient solvers based on input data types and objective function properties. It supports com

    Juliajuliaoptimoptimisation
    View on GitHub↗1,201
  • keras-team/keraskeras-team avatar

    keras-team/keras

    64,094View on GitHub↗

    Keras is a high-level deep learning framework designed for constructing and training neural networks through the composition of modular, functional layers. It serves as a comprehensive modeling toolkit that provides standardized procedures for defining, evaluating, and deploying complex architectures. By utilizing a directed acyclic graph approach, the framework allows users to build intricate models with multiple inputs, outputs, and shared layers, ensuring consistent numerical execution through functional state management. The project distinguishes itself as a multi-backend machine learning

    Pythondata-sciencedeep-learningjax
    View on GitHub↗64,094
  • See all 30 alternatives to Cvxpy→