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