code: private int findElementOrEmpty(int element)
    {
      assert element >= 0;
      int index = toIndex(IntHashCode.hashCode(element));
      int offset = 1;
  
      while (cells[index] != EMPTY) {
        // element found!
        if (cells[index] == element) {
          return index;
        }
  
        // compute the next index to check
        index = toIndex(index + offset);
        offset <<= 1;
        offset++;
        if (offset < 0) {
          offset = 2;
        }
      }
  
      // element not found!
      return -(index + 1);
    }
docs: Find position of the integer in {@link #cells}. If not found, returns the
  first empty cell.
  
  @param element element to search
  
  @return if <code>returned value >=0</code>, it returns the index of the
  element; if <code>returned value <0</code>, the index of the
  first empty cell is <code>-(returned value - 1)</code>