code: public static boolean increment(int[] array, int[] min, int[] max) {
          return increment(array, array.length - 1, min, max);
      }
docs: Increments `x` by the unit, treating the entire vector as a number. For
  example, incrementing a few times `x_0=\{0,0\}` within boundaries
  
  `[0,1]` results in: `x_1=\{0,1\}`,
  
  `x_2=\{1,0\}`, `x_3=\{1,1\}`, `x_4=\{0,0\}`.
  @param array is the array to increment
  @param min is the minimum value of the dimension
  @param max is the maximum value of the dimension
  @return `true` if `x` was incremented, `false` otherwise (e.g.,
  incrementing `x_3` returns `false`). In earlier versions to 6.0, the
  result was the inverse and indicated whether the counter had overflown
  (most sincere apologies for this change).