std::vector Space::sample()

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;
}