


% -*- texinfo -*-
% @deftypefn {Function File} {@var{x} =} lsqnonneg (@var{c}, @var{d})
% @deftypefnx {Function File} {@var{x} =} lsqnonneg (@var{c}, @var{d}, @var{x0})
% @deftypefnx {Function File} {[@var{x}, @var{resnorm}] =} lsqnonneg (@dots{})
% @deftypefnx {Function File} {[@var{x}, @var{resnorm}, @var{residual}] =} lsqnonneg (@dots{})
% @deftypefnx {Function File} {[@var{x}, @var{resnorm}, @var{residual}, @var{exitflag}] =} lsqnonneg (@dots{})
% @deftypefnx {Function File} {[@var{x}, @var{resnorm}, @var{residual}, @var{exitflag}, @var{output}] =} lsqnonneg (@dots{})
% @deftypefnx {Function File} {[@var{x}, @var{resnorm}, @var{residual}, @var{exitflag}, @var{output}, @var{lambda}] =} lsqnonneg (@dots{})
% Minimize @code{norm (@var{c}*@var{x}-d)} subject to @code{@var{x} >=
% 0}. @var{c} and @var{d} must be real. @var{x0} is an optional
% initial guess for @var{x}.
%
% Outputs:
% @itemize @bullet
% @item resnorm
%
% The squared 2-norm of the residual: norm(@var{c}*@var{x}-@var{d})^2
% @item residual
%
% The residual: @var{d}-@var{c}*@var{x}
% @item exitflag
%
% An indicator of convergence. 0 indicates that the iteration count
% was exceeded, and therefore convergence was not reached; >0 indicates
% that the algorithm converged. (The algorithm is stable and will
% converge given enough iterations.)
% @item output
%
% A structure with two fields:
% @itemize @bullet
% @item 'algorithm': The algorithm used ('nnls')
% @item 'iterations': The number of iterations taken.
% @end itemize
% @item lambda
%
% Not implemented.
% @end itemize
% @seealso{optimset}
% @end deftypefn