Class IntTuples

  • All Implemented Interfaces:
    IntCombinatorialPort, java.io.Serializable

    public final class IntTuples
    extends java.lang.Object
    implements IntCombinatorialPort
    Iterator over all N-tuples (not necessary to be distinct), which can be chosen from N arrays of integers of the form arrayi = [0, 1, 2, ..., Ki].
    For example, if a set of arrays length is {Ki} = [2,3,2], then the following tuples will be produced
        arr      lastUpdateDepth
     [0, 0, 0]          0
     [0, 0, 1]          2
     [0, 1, 0]          1
     [0, 1, 1]          2
     [0, 2, 0]          1
     [0, 2, 1]          2
     [1, 0, 0]          0
     [1, 0, 1]          2
     [1, 1, 0]          1
     [1, 1, 1]          2
     [1, 2, 0]          1
     [1, 2, 1]          2
     

    Calculation of the next tuple occurs only on the invocation of take().

    Note: method take() returns the same reference on each invocation.

    Since:
    1.0
    See Also:
    Serialized Form
    • Field Detail

      • upperBounds

        private final int[] upperBounds
      • current

        private int[] current
      • lastUpdateDepth

        private int lastUpdateDepth
    • Constructor Detail

      • IntTuples

        public IntTuples​(int... upperBounds)
    • Method Detail

      • checkWithException

        private static void checkWithException​(int[] upperBounds)
      • take

        public int[] take()
        Description copied from interface: IntCombinatorialPort
        Calculates and returns the next combination or null, if no more combinations exist.
        Specified by:
        take in interface IntCombinatorialPort
        Returns:
        the next combination or null, if no more combinations exist
      • getLastUpdateDepth

        public int getLastUpdateDepth()
      • getReference

        public int[] getReference()
        Description copied from interface: IntCombinatorialPort
        Returns the reference to the current iteration element
        Specified by:
        getReference in interface IntCombinatorialPort
        Returns:
        the reference to the current iteration element