closed book quiz, Jan 12, 2009,  name____________________________


In a filter estimation problem we need the adjoint of convolution.
What is the adjoint code that is XXXXXX'ed out?

	module tcaf1 {              # Transient Convolution
	real, dimension (:), pointer :: xx
	#%  _init( xx)
	#%  _lop ( bb, yy )
	integer        x,   b,   y
	if( size(yy) < size(xx) + size(bb) - 1 )   call erexit('tcaf')
	do b= 1, size(bb) {
	do x= 1, size(xx) {                      y = x + b - 1
		if( adj)
				XXXXXXXXXXXXXXXXXXXXXXXXXXXXX


		else	
				yy(y) = yy(y) + bb(b) * xx(x)
		} }
	}




Here is a different module often used for finding missing data.
Again some code is XXXXX'ed out.  What should it be?


	module tcai1 {            # Transient Convolution Adjoint Input 1-D
	real, dimension (:), pointer :: bb

	#%  _init( XXXXX

	#%  _lop(  XXXXX

	integer          b,   x, y
	do b= 1,size(bb) {
	do x= 1,size(xx) {                 y = x + b - 1
		if( adj)
				xx(x) = xx(x) + yy(y) * bb(b)
		else	
				yy(y) = yy(y) + xx(x) * bb(b)
		}}
	}