lsqr_c.README The software for LSQR (C version) is provided by SOL, Stanford University under the terms of the OSI Common Public License (CPL): http://www.opensource.org/licenses/cpl1.0.php 08 Sep 1999: First set of files provided by James W. Howse . 11 Oct 2000: Files unpacked by Michael Saunders. Lines longer than 80 characters had extraneous carriage returns. Tried to repair them, but not sure if I/O formats will be correct. 09 Dec 2005: Beware that this C version of LSQR allows x0 to be input. I RECOMMEND THAT YOU ALWAYS USE x0 = 0 (an n-vector of zeros). Otherwise, you must be conscious of the fact that LSQR will be solving A dx = r0 = b - A x0 and adding parts of dx to x0 AS IT GOES. If x0 is very close to a solution (that is, if dx is very small compared to x0), many digits of accuracy in dx will be lost. It is safer to solve A dx = r0 (with x0 = 0) and then compute x = x0 + dx yourself at the end. In either case, providing x0 will generally not save work (will not reduce the number of LSQR iterations) unless you use larger tolerances atol and btol than you would for Ax = b. Please send comments to Michael Saunders, SOL, Stanford University saunders@stanford.edu 650-723-1875 ----------------------------------------------------------------------------- The C version of LSQR involves the following files: lsqr.c lsqr.h makefile test_lsqr.c test_lsqr.h test_lstp.c test_mult.c test_prog.c test_lstp.c contains lstp, a least-square test problem generator. It constructs data for a matrix A and a vector b. test_mult.c computes products Ax and A'y. test_lsqr.c calls lstp to generate a problem, then calls lsqr to solve it. test_prog.c calls test_lsqr several times to generate and solve various problems.