| 6772 | |
| 6773 | template <typename URng, typename Iterator, typename Estimator> |
| 6774 | sample resample(URng& rng, int resamples, Iterator first, Iterator last, Estimator& estimator) { |
| 6775 | auto n = last - first; |
| 6776 | std::uniform_int_distribution<decltype(n)> dist(0, n - 1); |
| 6777 | |
| 6778 | sample out; |
| 6779 | out.reserve(resamples); |
| 6780 | std::generate_n(std::back_inserter(out), resamples, [n, first, &estimator, &dist, &rng] { |
| 6781 | std::vector<double> resampled; |
| 6782 | resampled.reserve(n); |
| 6783 | std::generate_n(std::back_inserter(resampled), n, [first, &dist, &rng] { return first[dist(rng)]; }); |
| 6784 | return estimator(resampled.begin(), resampled.end()); |
| 6785 | }); |
| 6786 | std::sort(out.begin(), out.end()); |
| 6787 | return out; |
| 6788 | } |
| 6789 | |
| 6790 | template <typename Estimator, typename Iterator> |
| 6791 | sample jackknife(Estimator&& estimator, Iterator first, Iterator last) { |
no test coverage detected