The user's guide distributed with the package is also available on-line.
The use of CVXOPT to develop customized interior-point solvers is decribed in the chapter Interior-point methods for large-scale cone programming (pdf), from the book Optimization for Machine Learning (edited by S. Sra, S. Nowozin, S. J. Wright, MIT Press, 2011).
A discussion of the interior-point algorithms used in the
coneqp()solvers can be found in the report The CVXOPT linear and quadratic cone program solvers (pdf).
There is a Google discussion forum for CVXOPT.
- Version 1.3.1 (May 9, 2023).
- Version 1.3.0 (March 8, 2022).
Bug fixes and improved Python 3.11 compatibility.
- Version 1.2.7 (September 20, 2021).
Minor improvements and bug fixes.
- Version 1.2.6 (February 18, 2021).
Minor improvements and bug fix.
- Version 1.2.5 (April 16, 2020).
Python 3.8 and PyPy compatibility.
- Version 1.2.4 (January 20, 2020).
Several bug fixes. Python 3.8 compatibility.
- Version 1.2.3 (February 5, 2019).
- Version 1.2.2 (October 18, 2018).
- Version 1.2.1 (August 30, 2018).
Several bug fixes.
- Version 1.2.0 (April 17, 2018).
Several bug fixes. Improved Windows compatibility (Python 3.5+).
- Version 1.1.9 (November 30, 2016).
Removed the SuiteSparse source code from the distribution.
- Version 1.1.8 (September 22, 2015).
Upgrade to SuiteSparse version 4.4.5. Several bug fixes.
- Version 1.1.7 (May 31, 2014).
Upgrades of the GLPK and MOSEK interfaces.
- Version 1.1.6 (April 22, 2013).
Several bug fixes (int/int_t issues). Performance improvements for certain spmatrix slicing operations. Upgrade to SuiteSparse version 4.1.0. Improved Numpy compatibility via buffer protocol (works in both Python 2.x and 3.x). Improved SunOS/Solaris compatibility (“complex double” instead of “complex”).
- Version 1.1.5 (March 28, 2012).
Fixed a Mac OS X BLAS compatibility issue.
- Version 1.1.4 (December 21, 2011).
Merged the source for the Python 2.7 and Python 3 versions.
- Version 1.1.3 (September 15, 2010).
Upgrade of the MOSEK interface to MOSEK version 6. A few bug fixes in the matrix class.
- Version 1.1.2 (December 15, 2009).
Several bug fixes. Improved initialization in the
- Version 1.1.1 (March 1, 2009).
Translated the user guide to Sphinx. Additional LAPACK routines for LQ factorization and QR factorization with column pivoting.
- Version 1.1 (October 15, 2008).
spmatrix(), and the other functions in
cvxopt.basecan now be directly imported from cvxopt (”
from cvxopt import matrix” replaces “
from cvxopt.base import matrix”, although the older code still works). bool(A) of a dense or sparse matrix A is now defined to be
Trueif A is a nonzero matrix. (Hence “
if A” in older code should be replaced by “
if len(A)”.) The optimization routines now return the last iterates when returning with status
'unknown', and provide information about the accuracy of the solution they return. An element-wise max and min of matrices. Schur factorization routines from LAPACK.
- Version 1.0 (April 24, 2008).
Addition of two-dimensional discrete transforms. Performance improvements in the optimization routines. Interfaces to the MOSEK and GLPK integer LP solvers (these features are documented in the source docstrings).
- Version 0.9.3 (February 24, 2008).
A new solver for quadratic programming with linear cone constraints. Minor changes to the other solvers: the option of requesting several steps of iterative refinement when solving Newton equations; the fields
W['dli']in the scaling dictionary described in section 9.4 were renamed
- Version 0.9.2 (December 27, 2007).
The GNU Scientific Library is no longer required for installation. The
cvxopt.randommodule has been deleted, and the functions for generating random matrices (
random.setseed()) have been moved to
cvxopt.base. The upgrade also includes an improved and more easily customized style of matrix formatting.
- Version 0.9.1 (November 23, 2007).
A revision of the nonlinear optimization solver, with added support for second-order cone and linear matrix inequality constraints. (A new argument was added to the function
solvers.cp(), but code that uses the previous version should still work if the arguments
bare specified by keywords.) The functions in
cvxopt.randomare now based on the random number generators of the GNU Scientific Library. The MOSEK interface was upgraded to version 5. A new function
base.spdiag()for specifying sparse block diagonal matrices.
- Version 0.9 (August 10, 2007).
A new cone program solver, with support for second-order cone constraints.
- Version 0.8.2 (February 6, 2007).
Performance improvements in the sparse matrix arithmetic. The LAPACK solvers for banded and tridiagonal equations. Several bug fixes.
- Version 0.8.1 (October 31, 2006).
Compatibility with Python 2.5. An extension of
base.matrix()to construct block matrices. A new function
sparse()to create sparse block matrices. The default value of
cholmod.options['supernodal']was changed to 2.
- Version 0.8 (September 20, 2006).
General sequences are allowed in matrix definitions and assignments. The
base.syrk()functions. Elementwise exponentiation of dense matrices. The FFTW interface. The optional arguments in BLAS and LAPACK have been reordered so that the most important arguments come first. (This affects previous code in which optional arguments were passed by position instead of by keyword.) A revised nonlinear convex optimization solver with a simpler calling sequence.
- Version 0.7.1 (August 1, 2006).
Complex sparse matrices. The sparse BLAS functions
base.gemm(). The DSDP5 interface. The
cvxopt.ccolamdinterfaces were removed. There are several important backward incompatible changes in the definitions of
base.matrix()is now required; it is no longer possible to create matrices with uninitialized values.
base.matrix()is of integer type, an integer matrix is created. For example, “
matrix(1)” now creates an
matrix(1.0)” creates a
Symmetric sparse matrices are no longer defined. The
base.spmatrix()has been removed.
base.spmatrix()are all required.
- Version 0.7 (April 21, 2006).
A semidefinite programming solver. LAPACK routines for QR factorization. The
base.smv()function was removed.
- Version 0.6.1 (February 27, 2006).
Compatibility with the SciPy array interface. Portability to 64 bit machines. LAPACK routines for matrix inversion. Generalized symmetric eigenvalue problems and singular value decomposition. The
cvxopt.ldlmodule has been removed.
- Version 0.6 (December 27, 2005).
log()of dense matrices. Indexed assignments of sparse to dense matrices. Pickling of dense and sparse matrices. Interfaces to the matrix ordering libraries COLAMD and CCOLAMD. Several new functions in
cvxopt.cholmod. A new LP solver.
- Version 0.5 (October 20, 2005).
The CHOLMOD interface. The nonlinear convex optimization solver in the solvers module. Several bug fixes.
- Version 0.4 (May 18, 2005).
Interfaces to the LP solvers in MOSEK and GLPK.
- Version 0.3 (March 29, 2005).
Several minor additions and improvements.
- Version 0.2 (January 31, 2005).
Sparse linear equation solvers from UMFPACK and LDL. A modeling tool for convex piecewise-linear optimization problems.
- Version 0.1 (November 3, 2004).
Dense and sparse matrix class. Some BLAS and LAPACK routines. A linear programming solver.