Introduction
CVXGEN generates fast custom code for small, QPrepresentable convex
optimization problems, using an online interface with no software installation.
With minimal effort, turn a mathematical problem description into a high speed
solver.
Using CVXGEN
Describe your LP or convex QP
Describe your small, quadratic program (QP) representable problem with a simple,
powerful language.
Automatically generate a custom solver
CVXGEN automatically creates libraryfree C code for a custom, highspeed
solver. This can be downloaded and used immediately, and requires nothing but a
C compiler. CVXGEN also supplies a Matlab function that, with one command,
downloads and builds a custom Matlab mex solver.
Solve your problems up to 10,000 times faster
CVXGEN performs most transformations and optimizations offline, to make online
solution as fast as possible. Code generation takes a few seconds or minutes,
producing solvers that work in microseconds or milliseconds. Compared with
CVX, solution times are typically at least 20 times
faster, with the smallest problems showing speedup as large as
10,000×.
Limitations
CVXGEN is for convex, QPrepresentable problems only. It works best for small
problems, where the final system has around 2000 total coefficients in the
constraints and objective. CVXGEN does not work well for larger problems.
Authors
Papers
CVXGEN: A Code Generator
for Embedded Convex Optimization, J. Mattingley and S. Boyd, Working
manuscript, November 2010
Code Generation for
Receding Horizon Control, J. Mattingley, Y. Wang and S. Boyd, Working
manuscript, August 2010
RealTime Convex
Optimization in Signal Processing, J. Mattingley and S. Boyd, IEEE Signal
Processing Magazine, 27(3):5061, May 2010
Automatic Code Generation
for RealTime Convex Optimization, J. Mattingley and S. Boyd, chapter in
Convex Optimization in Signal Processing and Communications, Y. Eldar and D.
Palomar, Eds., Cambridge University Press, 2009
