from Blendenpik by Haim Avron
A fast solver of dense rectangular dense linear equations . (least squares or underdetermined).

dense_underdetermined_lsqr(A, b, L, tol, maxit)
function [x, resvec, xvec] = dense_underdetermined_lsqr(A, b, L, tol, maxit)
% x = dense_underdetermined_lsqr(A, b, R, tol, maxit)
% [x, resvec, xvec] = dense_underdetermined_lsqr(A, b, R, tol, maxit)
%
% LSQR on a dense underdetermined matrix with a dense preconditioner L.
% Solves min(norm(x, 1)) s.t. Ax=b. A must be full rank.
% Inputs:
%   A, b
%   L - Lower triangular preconditioner. kappa(L \ A) governs
%       the convergence.
%   tol - tolerance. Stop when norm(r)/norm(b) < tol (norm(r) is
%         approximated).
%   maxit - Maximum number of iterations
% 
% Outputs:
%   x 
%   optional: resvec, xvec - values of norm(r) and norm(x).
%
% 6-December 2009, Version 1.3
% Copyright (C) 2009, Haim Avron and Sivan Toledo.

Contact us at files@mathworks.com