module icai1 { # Internal Convolution, Adjoint is the Input. 1-D integer :: lag # lag=1 means causal real, dimension (:), pointer :: bb #% _init( bb, lag) #% _lop ( xx, yy) integer b, x, y do b= 1, size(bb) { do y= 1+size(bb)-lag, size(yy)-lag+1 { x= y - b + lag if( adj) xx(x) += yy(y) * bb(b) else yy(y) += xx(x) * bb(b) } } }