Esempio n. 1
0
// Use different ids for different generators 
// Use different seeds for starting at different positions in sequence
Random newRandom(int id, uint32 seed) {
    Random mt = get_mt_parameter_id_st(32,521,id,seed);  
    if (mt == NULL) {
		fprintf(stderr,"\nnewRandom: get_mt_parameter_id_st failed\n");
		exit(1);	
    }
	sgenrand_mt(seed, mt);
	return mt;
}	
Esempio n. 2
0
void generator(int k)
{
	int j;
	for (j=0;j<k;j++)
    	{
    	/* This trys to find a small Mersenne Twister with period 2^521-1. */
    		mts[j] = get_mt_parameter_id_st(32,19937,rand() % 65536,4172);
		if (mts[j] == NULL){printf("Error on %d thread.\n", j);}
    		else {sgenrand_mt(3241+40*j,mts[j]);}
    	}
}