Exemple #1
0
static void r250_init(int sd) {
  int j, k;
  unsigned int mask, msb;
  set_seed( sd );

  r250_index = 0;
  for (j = 0; j < 250; j++)      /* fill r250 buffer with BITS-1 bit values */
    r250_buffer[j] = randlcg();

  for (j = 0; j < 250; j++)	/* set some MSBs to 1 */
    if ( randlcg() > HALF_RANGE )
      r250_buffer[j] |= MSB;

  msb = MSB;	        /* turn on diagonal bit */
  mask = ALL_BITS;	/* turn off the leftmost bits */

  for (j = 0; j < BITS; j++)  {
    k = STEP * j + 3;	/* select a word to operate on */
    r250_buffer[k] &= mask; /* turn off bits left of the diagonal */
    r250_buffer[k] |= msb;	/* turn on the diagonal bit */
    mask >>= 1;
    msb  >>= 1;
  }

}
Exemple #2
0
void inicializa_semilla(void)
{
	unsigned long j, k;
	unsigned long mask, msb;

	seed_val = time(NULL);

	r250_index = 0;
	for (j = 0; j < 250; j++)
	   r250_buffer[j] = randlcg();/* al parecer reseteo*/

	for (j = 0; j < 250; j++)
		if ( randlcg() > HALF_RANGE )
		   r250_buffer[j] |= MSB;

	msb = MSB;
	mask = ALL_BITS;

	for (j = 0; j < 32; j++) {
		k = STEP * j + 3;
		r250_buffer[k] &= mask;
		r250_buffer[k] |= msb;
		mask >>= 1;
		msb  >>= 1;
	}//End for
}//End inicializa_semilla