Sorry for the silence here, finally getting round to all the changes on this branch.  Realised/remembered that the generation of the covariance matrix requires an input image (from which it takes bounds: actually, would be better just to take bounds...) and so it might want to produce different output each time.  As making this covariance matrix is not crucial to the efficiency of the noise generation (we use FFTs instead), I'm going to simply make it a `calculateCovarianceMatrix` member function and put a TODO for the storing option.  I know it's a long function name, but it's long already as you point out, and explicit.  Will inform when this is pushed, sorry it took me so long (trying to work out the test results, learnt a lot!)