@Override
    protected int next(int bits)
    {
        try
        {
            lock.lock();
            index = (index + 1) & 4095;
            long t = A * (state[index] & 0xFFFFFFFFL) + carry;
            carry = (int) (t >> 32);
            int x = ((int) t) + carry;
            if (x < carry)
            {
                x++;
                carry++;
            }
            state[index] = 0xFFFFFFFE - x;
            return state[index] >>> (32 - bits);
        }
        finally
        {
            lock.unlock();
        }
    }
@ Override protected int next ( int bits ) { try { lock . lock ( ) ; index = ( index + 1 ) & 4095 ; long t = A * ( state [ index ] & 0xFFFFFFFFL ) + carry ; carry = ( int ) ( t > > 32 ) ; int x = ( ( int ) t ) + carry ; if ( x < carry ) { x ++ ; carry ++ ; } state [ index ] = 0xFFFFFFFE - x ; return state [ index ] > > > ( 32 - bits ) ; } finally { lock . unlock ( ) ; } }
{@inheritDoc}