NAME

solver_reg - iteratively solve regularized system of equation


SYNOPSIS

call solver_reg(oper, solv, reg, nreg, x, dat, niter, eps, x0,nmem,nfreq,err,res,nloper,xmov,rmov,wght,verb,known,wt)


INPUT PARAMETERS

REQUIRED PARAMETERS

oper - function
      operator (standard interface)
solv - step
      step mecanism
reg - function
      regularization operator operator(standard interface)
nreg - integer
      number of output pts when reg is applied to the model
dat - real(:)
      data
niter - integer
      number of iterations

OPTIONAL PARAMETERS

x0 - real(:)
       Initial model
nmem - integer
      Change behavior after nmem itterations
      use in conjunction with nfreq and/or wght
nfreq - integer
      Restart step function every nfreq itterations
      after nmem steps
nloper - func
      Non-linear operator to use for forward operator
wght - func(res,m)
      Weighting funtion operator
verb - logical
      Wheter or not to be verbose
known - logical(:)
      Specify (.true.) model values that are knonw
wt - real(:)
      Weighting operator to apply to residuals


OUTPUT PARAMETERS

REQUIRED PARAMETERS

x - real(:)
      model

OPTIONAL PARAMETERS

err - real(niter)
      Error sum((d-d~)**2)
res - real(:)
      Final residual (size of data)
xmov - real(:,niter)
      Movie of model values as a function of iter
rmov - real(:,niter)
      Movie of data residual


DESCRIPTION

Generic regularized solver.


COMMENTS

All operators must follow convetion

integer function (logical adj, logical add, real(:) model, real(:)data)

All solv routines must follow the convention

integer function(logical forget,real(:) x,real(:) g, real(:) rr,real(:) gg)


SEE ALSO

the solver_prec manpage,the solver manpage,the nonlin_solver manpage,the lsqr manpage


LIBRARY

geef90