modified convolution