| 59 | } |
| 60 | |
| 61 | CustomSampler::CustomSampler(int64_t range, |
| 62 | const float *probabilities, |
| 63 | const int *alias, |
| 64 | const float *alias_probabilities, |
| 65 | unsigned int seed) |
| 66 | : Sampler(range, seed) { |
| 67 | random_engine_ = phi::GetCPURandomEngine(seed_); |
| 68 | real_dist_ = std::make_shared<std::uniform_real_distribution<>>(0, 1); |
| 69 | int_dist_ = std::make_shared<std::uniform_int_distribution<>>(0, range); |
| 70 | |
| 71 | alias_probs_ = alias_probabilities; |
| 72 | probs_ = probabilities; |
| 73 | alias_ = alias; |
| 74 | } |
| 75 | |
| 76 | int64_t CustomSampler::Sample() const { |
| 77 | auto index = (*int_dist_)(*random_engine_); |
nothing calls this directly
no test coverage detected