RF: replaced np.convolve with my own cythonic convolution