Adding Gaussian Process Covariance Functions

Excellent point.

We do – see for example all of the examples in my GP case studies,
https://betanalpha.github.io/assets/case_studies/gp_part1/part1.html
https://betanalpha.github.io/assets/case_studies/gp_part2/part2.html
https://betanalpha.github.io/assets/case_studies/gp_part3/part3.html

These use cases motivated the original design spec on the wiki.

There isn’t a full proposal but there is the immediate decision of “do we pack together scaling hyperparameters and jitter/nuggets which makes single kernels slightly easier to implement” or “do we define kernels independent of these hyperparameters which makes it easier to combine kernels together and hence facilitating whatever kernel algebra library might be introduced in the future”.

When I was writing the GP case studies I was definitely yelled at to refer to “nugget” as the small diagonal contribution to stabilize the calculations even when there isn’t a conjugate Gaussian observation. Regardless I’m happy to go with jitter if it won’t upset the spatial stats people.

Regardless, if the diagonal term is templated out then it can used for jitter (by dumping a constant in) or unknown measurement variability (by dumping a parameter in).