BCLS: Bound Constrained Least Squares

Version 0.1

Version 0.1


BCLS is a software package for solving bound-constrained least-squares problems of the form

\[ \begin{array}{ll} \displaystyle\mathop{\hbox{minimize}}_x & \frac12\|Ax-b\|_2^2 + \mu\frac12\|x\|_2^2 + c^T x \\ \hbox{subject to} & \ell \le x \le u. \end{array} \]

The m-by-n matrix $A$ can be any shape. The regularization and linear terms are optional. The vectors $\ell$ and $u$ define upper and lower bounds on the variables $x$. Free and fixed variables are easily accomodated by setting corresponding components of $\ell$ and $u$ to be $-\infty$ and $+\infty$, or by setting them equal to each other.

BCLS implements a two-metric projected-descent method. At each iteration, a search direction is computed that is a combination of a Newton and a scaled steepest-descent step.

Some notable features of the implementation:

BCLS is written in ISO C and should compile on most systems (thanks for the Autoconf/Automake tools). No additional software is required, though there should be a significant speedup if it is compiled against a tuned BLAS library such as ATLAS. It has been tested using GCC on GNU/Linux, Mac OS X, and Windows XP (under MinGW).


BCLS is open-source software released under the L-GPL license. Feel free to use it in any way you wish. If you find it at all useful, I'd like to hear from you, please send email.

Sources (Version 0.1, 4 Mar 2007)
Precompiled MEX interfaces (WinXP, MacIntel, Linux) (Version 0.1, 4 Mar 2007) Getting started:

Michael P. Friedlander
Department of Computer Science
University of British Columbia

Generated on Sun Mar 4 22:50:03 2007 by Doxygen 1.5.1