The m-by-n matrix can be any shape. The regularization and linear terms are optional. The vectors and define upper and lower bounds on the variables . Free and fixed variables are easily accomodated by setting corresponding components of and to be and , 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).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.