More SProduct.evaluate optimisation - reduce memory usage; keep all samples though (rather than generate them on the fly and then discard...proportional samplinjg will want to keep track somehow of cumulative samples.