code: boolean incrementAt(int i, int j, long step) {
      int offset = j << 2;
      long mask = (0xfL << offset);
      if ((table[i] & mask) != mask) {
        long current = (table[i] & mask) >>> offset;
        long update = Math.min(current + step, 15);
        table[i] = (table[i] & ~mask) | (update << offset);
        return true;
      }
      return false;
    }
docs: Increments the specified counter by 1 if it is not already at the maximum value (15).
  
  @param i the table index (16 counters)
  @param j the counter to increment
  @param step the increase amount
  @return if incremented