generalized convolution