Я хочу возвращать разные образцы каждый раз, когда вызываю эту структуру. Как я могу это сделать? Есть ли способ посеять рнг1? Могу ли я использовать время для посева rng1?
typedef thrust::tuple<float, float> vec2;
struct point_to_bucket_index : public thrust::unary_function<vec2,float>
{
__host__ __device__
vec2 operator()(const vec2& v) const
{
float x = static_cast<float>(thrust::get<0>(v) );
thrust::default_random_engine rng1;
thrust::random::normal_distribution<float> u01(x, 1.0f);
float x1 = u01(rng1);
float y = static_cast<float>(thrust::get<1>(v) );
// return the bucket's linear index
return vec2(x1,y);
}
};