Example #1
0
void *random_new(int seed)
{
  ty_random *p;

  p = (ty_random *)malloc(sizeof(ty_random));
  taus_set(p->tausmem,(unsigned long)seed);
  return (void *)p;
}
Example #2
0
int cl_random_init(uint4 * state, size_t count, unsigned int seed)
{
   int i;

   // Commented out Nov 29, 2012
   // uint4 * state = (uint4 *) malloc(count * sizeof(uint4));
   // assert(state != NULL);

   // a zero seed can cause problems (see taus_set)
   seed = (seed == 0) ? 1 : seed;

   // initialize state array using a separate seed for each element
   //
   for (i = 0; i < count; i++) {
      taus_set(&state[i].state, i+seed);
      state[i].s0 = (state[i].state.s1 ^ state[i].state.s2 ^ state[i].state.s3);
   }

   return 0;
}