@Override
	public boolean containsAll(IntSet c) {
		if (c == null || c.isEmpty() || c == this)
			return true;
		if (isEmpty())
			return false;

		final FastSet other = convert(c);

		if (other.firstEmptyWord > firstEmptyWord)
			return false;

		final int[] localWords = words; 			// faster
		final int[] localOtherWords = other.words; 	// faster
		for (int i = 0; i < other.firstEmptyWord; i++) {
			int o = localOtherWords[i];
			if ((localWords[i] & o) != o)
				return false;
		}
		return true;
	}