24#ifndef SOM_SAMPLINGPOLICY_H
25#define SOM_SAMPLINGPOLICY_H
34namespace SamplingPolicy {
36template <
typename IterType>
40 virtual IterType
start(IterType begin, IterType end)
const = 0;
42 virtual IterType
next(IterType iter)
const = 0;
45template <
typename IterType>
49 IterType
start(IterType begin, IterType)
const override {
53 IterType
next(IterType iter)
const override {
58template <
typename IterType>
64 IterType
start(IterType begin, IterType end)
const override {
71 IterType
next(IterType)
const override {
81template <
typename IterType>
86template <
typename IterType>
94 IterType
start(IterType begin, IterType end)
const override {
104 for (
auto it = begin; it != end; ++it) {
113 int all_max_index = all_iter_list.size() - 1;
114 for (
std::size_t i = 0; i < m_sample_size && all_max_index >= 0; ++i, --all_max_index) {
116 auto it = all_iter_list.begin();
119 all_iter_list.erase(it);
128 IterType
next(IterType)
const override {
144template <
typename IterType>
IterType start(IterType begin, IterType end) const override
IterType next(IterType) const override
Bootstrap(IterType begin, IterType end)
std::uniform_int_distribution m_dist
IterType next(IterType iter) const override
IterType start(IterType begin, IterType) const override
virtual IterType start(IterType begin, IterType end) const =0
virtual IterType next(IterType iter) const =0
IterType start(IterType begin, IterType end) const override
IterType next(IterType) const override
std::size_t m_iter_list_size
Jackknife(std::size_t sample_size)
std::size_t m_sample_size
std::vector< IterType > m_iter_list
Bootstrap< IterType > bootstrapFactory(IterType begin, IterType end)
Jackknife< IterType > jackknifeFactory(IterType, std::size_t sample_size)