Example usage for org.apache.commons.math3.random BitsStreamGenerator nextInt

List of usage examples for org.apache.commons.math3.random BitsStreamGenerator nextInt

Introduction

In this page you can find the example usage for org.apache.commons.math3.random BitsStreamGenerator nextInt.

Prototype

public int nextInt(int n) throws IllegalArgumentException 

Source Link

Document

This default implementation is copied from Apache Harmony java.util.Random (r929253).

Implementation notes:

  • If n is a power of 2, this method returns (int) ((n * (long) next(31)) >> 31) .
  • If n is not a power of 2, what is returned is next(31) % n with next(31) values rejected (i.e.

    Usage

    From source file:cc.redberry.core.utils.ByteBackedBitArrayTest.java

    @Test
    public void test3() {
        BitsStreamGenerator random = new Well19937c();
        for (int sukatvarblyad = 0; sukatvarblyad < 100; ++sukatvarblyad) {
            int length;
            boolean[] array = new boolean[length = random.nextInt(100000)];
            ByteBackedBitArray bitArray = new ByteBackedBitArray(length);
    
            int i, bitCount = 0;
            IntArrayList bitsPositions = new IntArrayList();
            for (i = 0; i < length; ++i)
                if (array[i] = random.nextBoolean()) {
                    bitCount++;//from  w ww  . j a  v a  2 s  . c o m
                    bitArray.set(i);
                    bitsPositions.add(i);
                }
    
            assertEquals(bitCount, bitArray.bitCount());
            assertEquals(bitCount, bitsPositions.size());
    
            int pointer = 0;
            for (i = 0; i < length; ++i) {
                assertTrue(array[i] == bitArray.get(i));
                if (pointer != bitCount)
                    assertTrue(bitsPositions.get(pointer) == bitArray.nextTrailingBit(i));
                else
                    assertTrue(-1 == bitArray.nextTrailingBit(i));
                if (array[i])
                    pointer++;
            }
    
            bitArray.setAll();
            assertEquals(length, bitArray.bitCount());
        }
    }
    

    From source file:cc.redberry.core.utils.LongBackedBitArrayTest.java

    @Test
    public void test3() {
        BitsStreamGenerator random = new Well19937c();
        for (int sukatvarblyad = 0; sukatvarblyad < 10; ++sukatvarblyad) {
            int length;
            boolean[] array = new boolean[length = random.nextInt(100000)];
            LongBackedBitArray bitArray = new LongBackedBitArray(length);
    
            int i, bitCount = 0;
            IntArrayList bitsPositions = new IntArrayList();
            for (i = 0; i < length; ++i)
                if (array[i] = random.nextBoolean()) {
                    bitCount++;//from w ww .  j a  v  a2s  .c o m
                    bitArray.set(i);
                    bitsPositions.add(i);
                }
    
            assertEquals(bitCount, bitArray.bitCount());
            assertEquals(bitCount, bitsPositions.size());
    
            int pointer = 0;
            for (i = 0; i < length; ++i) {
                assertTrue(array[i] == bitArray.get(i));
                if (pointer != bitCount)
                    assertTrue(bitsPositions.get(pointer) == bitArray.nextTrailingBit(i));
                else
                    assertTrue(-1 == bitArray.nextTrailingBit(i));
                if (array[i])
                    pointer++;
            }
    
            bitArray.setAll();
            assertEquals(length, bitArray.bitCount());
        }
    }
    

    From source file:cc.redberry.core.tensor.iterator.TreeTraverseIteratorTest.java

    @Test
    public void testPayload1() {
        PayloadFactory<PayloadC> factory = new PayloadFactory<PayloadC>() {
            @Override/* ww w  .  j a v  a  2 s  .com*/
            public PayloadC create(StackPosition<PayloadC> stackPosition) {
                int s, p;
                StackPosition<PayloadC> pr = stackPosition.previous();
                if (pr == null)
                    s = p = 0;
                else {
                    s = pr.getPayload().sums;
                    p = pr.getPayload().products;
                }
                if (stackPosition.getInitialTensor() instanceof Sum)
                    ++s;
                if (stackPosition.getInitialTensor() instanceof Product)
                    ++p;
                return new PayloadC(s, p);
            }
    
            @Override
            public boolean allowLazyInitialization() {
                return true;
            }
        };
    
        int s = 0, p = 0, m;
        Tensor t = parse("(a+b)*(c+d*(k+c))*(a+b)*(c+d*(a+b)*(c+d*(a+b)*(c+(a+b)*(c+d*(k+c))"
                + "*(a+b)*(c+d*(a+b*((a+b)*(c+d*(k+c))*(a*((a+b)*(c+d*(k+c))*(a+b)*(c+d*(a+b)*"
                + "(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*(k+c))+(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+"
                + "c))*(k+c)))+b)*(c+d*(a+b)*(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*(k+c))+(a+b)*"
                + "(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))))*(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*"
                + "(k+c))+(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))+d*(k+c))*(k*(a+b)*(c+d*(k+c))+"
                + "(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))");
    
        BitsStreamGenerator bsg = new Well19937c();
    
        for (int i = 0; i < 300; ++i) {
            TreeTraverseIterator<PayloadC> iterator = new TreeTraverseIterator<>(t, factory);
            TraverseState state;
            while ((state = iterator.next()) != null) {
                if (state == TraverseState.Entering) {
                    if (iterator.current() instanceof Product)
                        ++p;
                    if (iterator.current() instanceof Sum)
                        ++s;
                }
    
                if (bsg.nextInt(100) < 5) {
                    Assert.assertEquals(p, iterator.currentStackPosition().getPayload().products);
                    Assert.assertEquals(s, iterator.currentStackPosition().getPayload().sums);
                }
    
                if (state == TraverseState.Leaving) {
                    if (iterator.current() instanceof Product)
                        --p;
                    if (iterator.current() instanceof Sum)
                        --s;
                }
            }
        }
    }