You're right, this is in a lot of places.
I wonder how expensive it is to create a `boost::math::normal_distribution` instance.  If the constructor just stored average and sigma, it would be cheap enough to just use a temporary inside our `operator()` and so keep the whole thing in the cpp. Let me check... no, it performs some error checks. Bother.

No, strike that. I ran a few simple tests, and the time for the call to quantile() seems to dominate. You might want to check yourself, but compiling with -O2 it seems that it makes no difference whether we store the `normal_distribution` instance or we create it on the fly. Let me know if you see the same results.