|
|
|
|
Madagascar Programming Reference Manual |
|
|
void sf_solver_prec (sf_operator oper /* linear operator */,
sf_solverstep solv /* stepping function */,
sf_operator prec /* preconditioning operator */,
int nprec /* size of p */,
int nx /* size of x */,
int ny /* size of dat */,
float* x /* estimated model */,
const float* dat /* data */,
int niter /* number of iterations */,
float eps /* regularization parameter */,
... /* variable number of arguments */)
/*< Generic preconditioned linear solver.
---
Solves
oper{x} =~ dat
eps p =~ 0
where x = prec{p}
---
The last parameter in the call to this function should be "end".
Example:
---
sf_solver_prec (oper_lop,sf_cgstep,prec_lop,
np,nx,ny,x,y,100,1.0,"x0",x0,"end");
---
Parameters in ...:
...
"wt": float*: weight
"wght": sf_weight wght: weighting function
"x0": float*: initial model
"nloper": sf_operator: nonlinear operator
"mwt": float*: model weight
"verb": bool: verbosity flag
"known": bool*: known model mask
"nmem": int: iteration memory
"nfreq": int: periodic restart
"xmov": float**: model iteration
"rmov": float**: residual iteration
"err": float*: final error
"res": float*: final residual
"xp": float*: preconditioned model
>*/
{
...
}