(22) |
The filter impulse response is seen in any column in the middle of the matrix, namely (1,-1). In the transposed matrix the filter impulse response is time reversed to (-1,1). So, mathematically, we can say that the adjoint of the time derivative operation is the negative time derivative. This corresponds also to the fact that the complex conjugate of is .We can also speak of the adjoint of the boundary conditions: we might say the adjoint of ``no boundary condition'' is ``specified value'' boundary conditions.
Banded matrices like in
(21) and (22)
arise commonly,
and subroutines like convin() are awkward and over-general
because they sum with a do loop
where a mere statement of the two terms is enough.
This is illustrated in subroutine ruffen1().
Notice the adjoint calculation resembles that in spot1() .
subroutine ruffen1( adj, n, xx, yy )
integer i, adj, n
real xx(n), yy( n-1)
call adjnull( adj, 0, xx,n, yy, n-1)
do i= 1, n-1 {
if( adj == 0 )
yy(i) = yy(i) + xx(i+1) - xx(i)
else {
xx(i+1) = xx(i+1) + yy(i)
xx(i ) = xx(i ) - yy(i)
}
}
return; end