FiOrdOs is a Matlab toolbox for automated C-code generation of first-order methods for the class of
parametric convex programs
where all of the problem data can be parametric.
The parametric program has the following properties:
The toolbox implements the gradient method and the fast gradient method. For both methods, also a variant with adaptive step size is available.
In case of an equality and/or an inequality constraint, there are two solution approaches available:
More features:
problem specification through Matlab objects
automated or manual selection of solution method
optimal preconditioning
certification of iteration count
automated C-code generation including
The copyright is with the Automatic Control Lab, ETH Zurich.
FiOrdOs is licensed under the GPL 3.0. In order to promote the Open Source idea under which this software is licensed, the resulting output from this software or modified output shall also be published under the GPL 3.0. For your convenience, a respective comment line is added to any output that this software generates.
If you are interested in using the generated output commercially, please contact the Automatic Control Lab, ETH Zurich.
FiOrdOs is available via tbxmanager, which simplifies the installation and update of freely available Matlab toolboxes.
To install FiOrdOs for the first time, follow these steps in Matlab:
Install tbxmanager as described on the
tbxmanager homepage.
Install FiOrdOs and optionally other toolboxes that are required for additional features:
tbxmanager install fiordos yalmip sedumi
Get further information by typing
To update FiOrdOs and other installed toolboxes, simply run
tbxmanager update
FiOrdOs was tested with Matlab R2010b, R2013a and R2014a.
R20140930
Version 2.0
new primal-dual approach that can handle also positive semidefinite H, including H=0 (e.g. LP's)
solves compatibility issues with Matlab R2014 and new Yalmip releases
updated user guide in pdf-format
R20121210
Version 1.2
automatic detection if (sub)problem can be solved analytically
support of inequality constraints
unified iteration count handling for all algorithms
bug fixes
R20120921
Version 1.1
new sets: hyperplane, halfspace, l1-ball
algorithms with adaptive step size schemes → no eigenvalue computation anymore
optional diagonal structure exploitation for Hessian H
modified linear algebra (to allow for larger problems)
bug fixes and efficiency improvements
Fabian Ullmann, former MSc student at ETH Zurich (primary developer)
Stefan Richter, former PhD student at the Automatic Control Lab, ETH Zurich (advisor)
If you have suggestions for improvements or encounter any troubles, just send an e-mail to fiordos@control.ee.ethz.ch. We are happy to help.
F. Ullmann. FiOrdOs: A Matlab Toolbox for C-Code Generation for First Order Methods. Master’s thesis, ETH Zurich, 2011. (
Research Collection)
S. Richter. Computational Complexity Certification of Gradient Methods for Real-Time Model Predictive Control. PhD thesis, Zurich, Switzerland, November 2012. (
Research Collection)
C.N. Jones. FiOrdOs: Code Generation for First-Order Methods. Talk at ACC 2012, Montreal, Canada, June 2012.
S. Richter. FiOrdOs: Code Generation for First-Order Methods. Talk at ISMP 2012, Berlin, Germany, August 2012.
C.N. Jones. Fast predictive control: Real-time computation and certification. Talk at NMPC12, Noordwijkerhout, The Netherlands, August 2012.
C.N. Jones. First-Order Optimization for Control. Talk in workshop “Predictive Control for Embedded Systems: State of the Art and Future Challenges” of CDC12, Maui, Hawaii, USA, December 2012.