def convolve( filter )
      filter = Node.match( filter, typecode ).new filter unless filter.matched?
      array = self
      (dimension - filter.dimension).times { array = array.roll }
      array.table(filter) { |a,b| a * b }.diagonal { |s,x| s + x }
    end
def convolve( filter )
      filter = Node.match( filter, typecode ).new filter unless filter.matched?
      array = self
      (dimension - filter.dimension).times { array = array.roll }
      array.table(filter) { |a,b| a * b }.diagonal { |s,x| s + x }
    end
Convolution with other array of same dimension

 @param [Node] filter Filter to convolve with.

 @return [Node] Result of convolution.