As I mentioned in a general comment, this code seems muddled about the point of Gaussian Convolution. It's a mutation operator, but you use language that makes it sound like it's an optimizer or searcher.