docs: public void clear(int from, int to) {
          if(from < 0 || to < 0 || to < from || to >= size)
              throw new IndexOutOfBoundsException("from=" + from + ", to=" + to);
  
          int startWordIndex = wordIndex(from);
          int endWordIndex = wordIndex(to);
  
          long firstWordMask = WORD_MASK << from;
          long lastWordMask  = WORD_MASK >>> -(to+1);
          if (startWordIndex == endWordIndex) {
              // Case 1: One word
              words[startWordIndex] &= ~(firstWordMask & lastWordMask);
          } else {
              // Case 2: Multiple words
              // Handle first word
              words[startWordIndex] &= ~firstWordMask;
  
              // Handle intermediate words, if any
              for (int i = startWordIndex+1; i < endWordIndex; i++)
                  words[i] = 0;
  
              // Handle last word
              words[endWordIndex] &= ~lastWordMask;
          }
      }