next up previous print clean
Next: CALCULATING ERROR FILTERS Up: WEIGHTED ERROR FILTERS Previous: Meet the Toeplitz matrix

Setting up any weighted CG program

Equation (18) is of the form $\bold 0 \approx \bold W (\bold d - \bold B\bold f)$.This can be converted to a new problem without weights by defining a new data vector $\bold W\bold d$and a new operator $\bold W\bold B$simply by carrying $\bold W$ through the parentheses to $\bold 0 \approx \bold W \bold d - (\bold W \bold B)\bold f$.Convolution followed by weighting is implemented in subroutine wcontrunc() [*].  
# filter and weight.
#
subroutine wcontrunc( adj, add, ww,    lag, nx, xx, nf,ff,  nn,yy )
integer i,            adj, add,        lag, nx,     nf,     nn
real                            ww(nn),     xx(nx), ff(nf), yy(nn)
temporary real                  ss(nn)
call adjnull(         adj, add,                     ff,nf,  yy,nn)
if( adj == 0) {  call contrunc( 0,0, lag,  nx,xx,   nf,ff,  nn,ss)      
                 do i= 1, nn
                        yy(i) =  yy(i) + ss(i) * ww(i)
                 }
else          {  do i= 1, nn
                        ss(i) =          yy(i) * ww(i)
                 call contrunc( 1,1, lag,  nx,xx,   nf,ff,  nn,ss)      
                 }
return;  end


next up previous print clean
Next: CALCULATING ERROR FILTERS Up: WEIGHTED ERROR FILTERS Previous: Meet the Toeplitz matrix
Stanford Exploration Project
10/21/1998