The Lawson–Hanson algorithm for non-negative least squares
