module double { # put a double pulse integer :: nb, nx #% _init (nb, nx) #% _lop (x, y) if (adj) { x (1:nx) = x (1:nx) + (y (1:nx) - y (1 + nb:nx + nb)) /nb } else { y (1 :nx ) = y (1 :nx ) + x (1:nx) /nb y (1 + nb:nx + nb) = y (1 + nb:nx + nb) - x (1:nx) /nb } }