NNLS A fairly promising deconvolution algorithm has been implemented, based on Non Negative Least Squares matrix inversion. The task svdconv performs several algebraic deconvolution algorithms, NNLS among them. The algorithm is a quite straightforward application of a rather complicated preexisting constrained linear algebra algorithm. NNLS deconvolution is somewhat slower than existing algorithms for compact sources, and very much slower for extended objects.
Memory is the limiting factor to the source size that can be deconvolved.
One copy of the beam matrix must be held in memory, of size , where is the number of pixels in the dirty map used as input to the algorithm, and is the number of pixels where the algorithm is allowed to place flux. It is important that this fit into physical memory, as once page swapping sets in performance degrades dramatically, and problems that were just practical become quite impractical. Running time is roughly proportional to , and also varies with the SNR of the data, with higher quality data taking longer to process. When used in NNLS mode, many of the inputs to svdconv can be ignored. Dirty and PSF are images that have been made with uvmap .