0% found this document useful (0 votes)
3 views2 pages

CVXGEN - Code Generation For Convex Optimization

CVXGEN is a tool that generates fast custom code for small convex optimization problems, allowing users to quickly convert mathematical descriptions into high-speed solvers without software installation. It produces library-free C code and can generate solvers that are significantly faster than traditional methods, achieving speedups of up to 10,000 times for small problems. However, it is limited to convex, QP-representable problems and is most effective for problems with around 2000 coefficients.

Uploaded by

bs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views2 pages

CVXGEN - Code Generation For Convex Optimization

CVXGEN is a tool that generates fast custom code for small convex optimization problems, allowing users to quickly convert mathematical descriptions into high-speed solvers without software installation. It produces library-free C code and can generate solvers that are significantly faster than traditional methods, achieving speedups of up to 10,000 times for small problems. However, it is limited to convex, QP-representable problems and is most effective for problems with around 2000 coefficients.

Uploaded by

bs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

9/24/2020 CVXGEN: Code Generation for Convex Optimization

CVXGEN: Code Generation for Convex Optimization

Introduction
CVXGEN generates fast custom code for small, QP-representable
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 library-free C code for a custom,
high-speed 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, QP-representable 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
Jacob Mattingley, a Ph.D. candidate at Stanford University
(primary author)
Stephen Boyd, a professor at Stanford University (advisor)

Papers
https://cvxgen.com/docs/index.html 1/2
9/24/2020 CVXGEN: Code Generation for Convex Optimization

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
Real-Time Convex Optimization in Signal Processing, J. Mattingley
and S. Boyd, IEEE Signal Processing Magazine, 27(3):50-61, May
2010
Automatic Code Generation for Real-Time 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

Page generated 2013-12-04 20:44:39 PST, by jemdoc.

https://cvxgen.com/docs/index.html 2/2

You might also like