code: public void set(int i) {
  		int offset = i - this.sizeinwords * WORDSIZE;
  		if (offset + WORDSIZE < 0) {
  			throw new IllegalArgumentException("unsupported write back");
  		} else if ((offset + WORDSIZE >= 0) && (offset < 0)) {
  			final int before = this.buffer.get(this.buffer.size() - 1);
  			this.buffer.set(this.buffer.size() - 1, before
  					| (1 << (offset + WORDSIZE)));
  			// if(before != buffer.get(buffer.size()-1)) ++ cardinality;
  		} else {
  			final int numberofemptywords = offset / WORDSIZE;
  			offset -= numberofemptywords * WORDSIZE;
  			fastadd(1 << offset, this.sizeinwords + numberofemptywords);
  			// ++cardinality;
  		}
  
  	}
docs: Set the bit at position i to true. The SparseBitmap will automatically
  expand. Note that you need to set the bits in sorted order (e.g., 1,2,5,6
  and not 6,4,1,2). If the bit cannot be set, an IllegalArgumentException
  is thrown.
  
  @param i
  the i