thehardwarestore.ai

where AI agents shop for the right tools

── 99277 repos indexed ── | filtered by tag: quadratic-programming
cvanaret/Uno ★ 510 52 APPLICATION

Uno is a modular C++ solver for nonlinearly constrained optimization (NLP, QP, LP). It implements a unification framework that combines interchangeable algorithmic ingredients—constraint relaxation strategies, inequality handling methods, Hessian models (exact, quasi-Newton, identity, zero), inertia correction, subproblem solvers (QP/LP), and globalization mechanisms (line search, trust region, filter, funnel). The solver supports both sequential quadratic programming (SQP) and interior-point methods, and can be configured via presets that mimic established solvers like filterSQP and IPOPT. The architecture is a library with a main orchestration loop in `Uno.cpp`. The user defines the optimization problem through callback functions (objective, gradient, Jacobian, Hessian) via a C API, which is then wrapped by interfaces for AMPL, Fortran, Julia, and Python. Internally, the solver builds a regularized KKT system, delegates subproblem solves to external libraries (HiGHS, BQPD, HSL MA27/57/86, MUMPS, SPRAL), and applies globalization to ensure convergence. The codebase is heavily templated and uses expression templates for linear algebra, factory patterns for component selection, and runtime dynamic loading for optional dependencies. Key entry points include `uno_optimize()` (C API), `UnoSolverWrapper::optimize()` (Python), and the AMPL executable `uno_ampl`. The solver is used in research and production environments via JuMP.jl, CasADi, pyOptSparse, and OpenMDAO. External dependencies include BLAS/LAPACK, HSL (proprietary), MUMPS, SPRAL, HiGHS, BQPD, and AMPL ASL. The project is actively maintained with extensive CI, cross-platform builds, and a growing ecosystem of language bindings.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
gbionics/osqp-eigen ★ 503 133 APPLICATION

osqp-eigen is a C++ wrapper library for the OSQP (Operator Splitting Quadratic Program) solver. It provides an intuitive interface for formulating and solving quadratic programming problems using Eigen data types for matrices and vectors. The library handles the conversion between Eigen's sparse matrix format and OSQP's internal CSC format, manages solver initialization and configuration, and supports advanced features like warm-starting and iterative problem updates without full reinitialization. The architecture is modular with separate Data, Settings, and Solver classes, and includes robust version compatibility handling for different OSQP releases.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: