Есть ли способ возвращать разные случайные выборки каждый раз, когда я использую thrust :: default_random_engine rng1? - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу возвращать разные образцы каждый раз, когда вызываю эту структуру. Как я могу это сделать? Есть ли способ посеять рнг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);
  }

};
...