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; }
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; }