/*! * Copyright (c) 2019 by Contributors * \file random/choice.cc * \brief Non-uniform discrete sampling implementation */ #include #include #include #include #include #include #include #include #include #include "sample_utils.h" namespace dgl { template IdxType RandomEngine::Choice(FloatArray prob) { IdxType ret; ATEN_FLOAT_TYPE_SWITCH(prob->dtype, ValueType, "probability", { utils::TreeSampler sampler(this, prob); ret = sampler.Draw(); }); return ret; } template int32_t RandomEngine::Choice(FloatArray); template int64_t RandomEngine::Choice(FloatArray); }; // namespace dgl