Software for Disciplined Convex Programming

CVX: a Matlab-based convex modeling framework

CVX is a popular modeling framework for disciplined convex programming that CVX turns Matlab into a modeling language, allowing constraints and objectives to be specified using standard Matlab expression syntax. CVX is a powerful tool for the rapid prototyping of models and algorithms incorporating convex optimization. Version 2.0, recently released in beta form, includes support for mixed-integer disciplined convex programs (MIDCPs). CVX is free for use in academic and commercial applications when paired with one of the included free solvers, SeDuMi or SDPT3. A CVX Professional license unlocks the ability to use CVX with commercial solvers Gurobi and Mosek. Academic users can obtain a CVX Professional license at no charge; commercial users can purchase licenses directly from CVX Research.

TFOCS: Templates for First-Order Conic Solvers

TFOCS (pronounced tee-fox) provides a set of Matlab templates, or building blocks, that can be used to construct efficient, customized solvers for a variety of convex models, including in particular those employed in sparse recovery applications. TFOCS can scale to larger model sizes than CVX. However, it is not a modeling framework—it requires all models to be manually converted to one of its standard forms. Therefore, it requires more expertise to use than CVX. TFOCS was conceived and written by Stephen Becker, Emmanuel J. Candès and Michael Grant, and is jointly owned by CVX Research and Caltech. It has been made freely available for both academic and commercial use under a BSD 3-Clause license.