__device__ void generate_uniform(T *val, curandState_t *state) { *val = (T)curand(state); }
DINLINE Type operator()(RNGState* state) const { /*curand create a random 32Bit int value*/ return curand(state); }
DINLINE uint32_t get32Bits(StateType& state) const { return curand(&state); }