in binding-cpp/gym_binding.cpp [19:40]
std::vector<float> Space::sample()
{
if (type==DISCRETE) {
std::uniform_int_distribution<int> randint(0, discreet_n-1);
std::vector<float> r(1, 0.0f);
r[0] = randint(rand_generator);
return r;
}
assert(type==BOX);
std::uniform_real_distribution<float> rand(0.0f, 1.0f);
int sz = 1;
for (int dim: box_shape)
sz *= dim;
assert((int)box_high.size()==sz);
assert((int)box_low.size()==sz);
std::vector<float> r(sz, 0.0f);
for (int c=0; c<sz; ++c)
r[c] = (box_high[c]-box_low[c])*rand(rand_generator) + box_low[c];
return r;
}