\chapter{Introduction}\label{chap:intro}

CVXOPT is a free software package for convex optimization based on
the Python programming language.
It can be used with the interactive Python interpreter, 
on the command line by executing Python scripts, or integrated in 
other software via Python extension modules.
Its main purpose is to make the development of software for convex 
optimization applications straightforward by building on Python's 
extensive standard library and on the strengths of Python as a 
high-level programming language.  

Release 0.9.3 of CVXOPT includes routines for basic linear algebra 
calculations, interfaces to efficient libraries for solving dense and 
sparse linear equations, convex optimization solvers written in Python,
interfaces to a few other optimization libraries, 
and a modeling tool for piecewise-linear convex optimization problems.
These components are organized in different modules.  
\begin{description}
\item[\module{cvxopt.base}] This module defines a Python type
 \mtrx\ for storing and manipulating dense matrices, 
 a Python type \spmtrx\ for storing and manipulating sparse 
 matrices, routines for generating sparse dense matrices 
 (see section~\ref{s-random}), and routines 
 for sparse matrix-vector and matrix-matrix 
 multiplication (see chapters~\ref{chap:matrix} 
 and~\ref{chap:spmatrix}).
\item[\module{cvxopt.blas}] Interface to most of the double-precision 
 real and complex BLAS (chapter~\ref{chap:blas}).
\item[\module{cvxopt.lapack}] Interface to the dense double-precision 
 real and complex linear equation solvers and eigenvalue routines 
 from LAPACK (chapter~\ref{chap:lapack}).
\item[\module{cvxopt.fftw}] An optional interface to the 
 discrete transform routines from FFTW (section~\ref{c-fftw}). 
\item[\module{cvxopt.amd}]  Interface to the approximate minimum degree
 ordering routine from AMD (chapter~\ref{s-orderings}).
\item[\module{cvxopt.umfpack}] Interface to the sparse LU solver 
 from UMFPACK (section~\ref{s-umfpack}).
\item[\module{cvxopt.cholmod}] Interface to the sparse Cholesky 
 solver from CHOLMOD (section~\ref{s-cholmod}).
\item[\module{cvxopt.solvers}] Convex optimization routines
 and optional interfaces to solvers from GLPK, MOSEK and DSDP5
 (chapters~\ref{chap:coneprog} and~\ref{chap:solvers}).
\item[\module{cvxopt.modeling}]  Routines for specifying and solving 
 linear programs and convex optimization problems with piecewise-linear 
 cost and constraint functions (chapter~\ref{chap:modeling}).
\item[\module{cvxopt.info}] Defines a string \code{version} with
 the version number of the CVXOPT installation and a function 
 \function{license()} that prints the CVXOPT license.  
\item[\module{cvxopt.printing}] Contains functions and parameters that
 control how matrices are formatted. 
\end{description}
The modules are described in detail in this manual and in the 
on-line Python help facility \program{pydoc}.  Several example scripts 
are included in the distribution. 
