public boolean add(int s, E e) {
		if (e == null)
			throw new NullPointerException();
		int mask = (1 << s);
		int oldMask = addMask(logs, data, masks, e, mask);
		int newMask = oldMask | mask;
		if (newMask == oldMask)
			return false;
		else if (oldMask == 0
				&& ++occupied == LinearProbing.getUpperSize(data.length))
			enlarge();
		sizes[s]++;
		return true;
	}
public boolean add(int s, E e) {
		if (e == null)
			throw new NullPointerException();
		int mask = (1 << s);
		int oldMask = addMask(logs, data, masks, e, mask);
		int newMask = oldMask | mask;
		if (newMask == oldMask)
			return false;
		else if (oldMask == 0
				&& ++occupied == LinearProbing.getUpperSize(data.length))
			enlarge();
		sizes[s]++;
		return true;
	}
public boolean add ( int s , E e ) { if ( e == null ) throw new NullPointerException ( ) ; int mask = ( 1 << s ) ; int oldMask = addMask ( logs , data , masks , e , mask ) ; int newMask = oldMask | mask ; if ( newMask == oldMask ) return false ; else if ( oldMask == 0 && ++ occupied == LinearProbing . getUpperSize ( data . length ) ) enlarge ( ) ; sizes [ s ] ++ ; return true ; }
Inserts a given element into the given slice

@param s
the slice id
@param e
the elements to be inserted in to the given slice
@return {@code true} if the given element did not occur in the given
slice and thus was inserted. Otherwise {@code false} is returned
and nothing is modified.
Inserts a given element into the given slice