lemon/random.h
changeset 1338 0998f70d0b2d
parent 1328 d51126dc39fa
child 1343 20f95cd51aba
equal deleted inserted replaced
29:fb0415a0a3e5 30:1766581bd7e4
   247         static const Word loMask = RandomTraits<Word>::loMask;
   247         static const Word loMask = RandomTraits<Word>::loMask;
   248         static const Word hiMask = RandomTraits<Word>::hiMask;
   248         static const Word hiMask = RandomTraits<Word>::hiMask;
   249 
   249 
   250         current = state + length;
   250         current = state + length;
   251 
   251 
   252         register Word *curr = state + length - 1;
   252         Word *curr = state + length - 1;
   253         register long num;
   253         long num;
   254 
   254 
   255         num = length - shift;
   255         num = length - shift;
   256         while (num--) {
   256         while (num--) {
   257           curr[0] = (((curr[0] & hiMask) | (curr[-1] & loMask)) >> 1) ^
   257           curr[0] = (((curr[0] & hiMask) | (curr[-1] & loMask)) >> 1) ^
   258             curr[- shift] ^ mask[curr[-1] & 1ul];
   258             curr[- shift] ^ mask[curr[-1] & 1ul];