 
 __host__ __device__ unsigned long THCRandom_random()
 {
-  thrust::default_random_engine rng(the_initial_seed);
   thrust::uniform_int_distribution<unsigned long> ufm(0,(((unsigned long)1)<<31)-1);
   return ufm(rng);
 }

/* generates a random number on [0,1)-double-interval */
__host__ __device__ static double __uniform__()
{
  thrust::default_random_engine rng(the_initial_seed);
  thrust::uniform_real_distribution<double> ufm(0,1);
  return ufm(rng);
}

/* The initial seed. */
__device__ static unsigned long the_initial_seed = 0;
__device__ static int initf = 0;
__device__ static thrust::default_random_engine rng;

/* Seeds */
__host__ __device__ unsigned long THCRandom_seed()
