| 39 | : num_samples_(num_samples) {} |
| 40 | |
| 41 | void CombinationSampler::Initialize(const size_t total_num_samples) { |
| 42 | THROW_CHECK_LE(num_samples_, total_num_samples); |
| 43 | total_sample_idxs_.resize(total_num_samples); |
| 44 | // Note that the samples must be in increasing order for `NextCombination`. |
| 45 | std::iota(total_sample_idxs_.begin(), total_sample_idxs_.end(), 0); |
| 46 | } |
| 47 | |
| 48 | size_t CombinationSampler::MaxNumSamples() { |
| 49 | return NChooseK(total_sample_idxs_.size(), num_samples_); |