{"library":"quadprog","title":"quadprog: Quadratic Programming Solver","description":"quadprog is a Python wrapper for a C++ library that efficiently solves quadratic programming problems. It minimizes `0.5 * x^T G x + a^T x` subject to `C^T x >= b` and an optional number of equality constraints (`meq`). The library is currently at version 0.1.13 and receives active, though somewhat irregular, maintenance.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install quadprog"],"cli":null},"imports":["from quadprog import solve_qp"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nfrom quadprog import solve_qp\n\n# Define the quadratic program:\n# Minimize 0.5 * x^T G x + a^T x\n# Subject to C^T x >= b\n\n# Example: Minimize x^2 + y^2 - x - y\n# This means G = [[2, 0], [0, 2]] and a = [-1, -1]\nG = np.array([[2., 0.], [0., 2.]])\na = np.array([-1., -1.])\n\n# Constraints: x >= 0, y >= 0, x + y >= 1\n# In quadprog, C's columns are the normal vectors of the constraints.\n# C^T x >= b  =>  [[1, 0, 1], [0, 1, 1]]^T x >= [0, 0, 1]^T\n# Which means:\n# 1*x + 0*y >= 0\n# 0*x + 1*y >= 0\n# 1*x + 1*y >= 1\nC = np.array([[1., 0., 1.],\n              [0., 1., 1.]])\nb = np.array([0., 0., 1.])\n\n# Number of equality constraints (first 'meq' rows of C and b)\nmeq = 0\n\n# Solve the QP. It returns (x, fval, xu, l)\n# x: solution vector\n# fval: objective function value at x\n# xu: unconstrained solution (unused in this example)\n# l: Lagrange multipliers (unused in this example)\nsolution, _, _, _ = solve_qp(G, a, C, b, meq)\n\nprint(f\"Optimal solution x: {solution}\")\n# Expected output for this problem: Optimal solution x: [0.5 0.5]","lang":"python","description":"This example demonstrates how to set up and solve a simple quadratic programming problem with inequality constraints using `quadprog.solve_qp`. The problem minimizes `x^2 + y^2 - x - y` subject to `x >= 0`, `y >= 0`, and `x + y >= 1`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.1.13","pypi_latest":"0.1.13","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":3.7,"avg_import_s":0.26,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"quadprog","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"quadprog","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":0.2,"mem_mb":6.7,"disk_size":"87M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"quadprog","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"quadprog","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.33,"mem_mb":7.1,"disk_size":"94M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"quadprog","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"quadprog","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.5,"import_time_s":0.3,"mem_mb":7,"disk_size":"82M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"quadprog","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"quadprog","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.28,"mem_mb":7.6,"disk_size":"82M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"quadprog","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"quadprog","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.2,"import_time_s":0.19,"mem_mb":6.4,"disk_size":"97M"}]}}