Overview

tsnnls is a fast solver for least-squares problems in the form Ax = b under the constraint that all entries in the solution vector x are non-negative. tsnnls is written in portable ANSI C, and designed to be linked easily into larger applications. The quality of solutions is comparable to those of MATLAB, but tsnnls is much faster and does not require the overhead of an interface with a large commercial math package. The tsnnls solver is based on the standard LAPACK and BLAS libraries, the supernodal multifrontal sparse Cholesky code from TAUCS, and the Stanford LSQR least-squares solver. Both TAUCS and LSQR are built into the tsnnls distribution for simplicity, but LAPACK and BLAS can be replaced with optimized versions for specific platforms.

We have tested the build of tsnnls on Linux and Mac OS X 10.3 systems. It should build without modification on most POSIX platforms with the gcc 3.x toolchain. The tsnnls source is freely available under the GNU GPL. Users should note that the included Stanford LSQR (license) and TAUCS (license) libraries are covered under different free-use licenses.

tsnnls is the computational core of our (forthcoming) RidgeRunner software for simulating the tightening of knotted strings and other self-contact problems in physics and graphics. Some preliminary animations of the RidgeRunner tightenings are posted on the web. Let us know how you use tsnnls in your applications!

Download

Contact

Jason Cantarella
Assistant Professor
University of Georgia
Mathematics Department
Boyd Graduate Research Tower
Athens, GA 30605

Email: last name AT math DOT uga DOT edu
Michael Piatek
Student
Duquesne University
Mathematics and Computer Science Department
600 Forbes Ave.
Pittsburgh, PA 15282

Email: last name AT mathcs DOT duq DOT edu

Funding

We were supported by the NSF during the development of tsnnls, and would also like to thank our collaborator, Eric Rawdon, at Duquesne University. This work was funded by the the University of Georgia VIGRE grant DMS-00-8992 and DMS-02-04826 (to Cantarella and Fu). Piatek was supported through DMS-0311010 to Eric Rawdon.