public boolean addAll(FastIDSet c) { boolean changed = false; for (long k : c.keys) { if (k != NULL && k != REMOVED && add(k)) { changed = true; } } return changed; }
private void addSomeOf(FastIDSet possibleItemIDs, FastIDSet itemIDs) { if (itemIDs.size() > maxItemsPerUser) { LongPrimitiveIterator it = new SamplingLongPrimitiveIterator(itemIDs.iterator(), (double) maxItemsPerUser / itemIDs.size()); while (it.hasNext()) { possibleItemIDs.add(it.nextLong()); } } else { possibleItemIDs.addAll(itemIDs); } }
private void rehash(int newHashSize) { long[] oldKeys = keys; numEntries = 0; numSlotsUsed = 0; keys = new long[newHashSize]; Arrays.fill(keys, NULL); for (long key : oldKeys) { if (key != NULL && key != REMOVED) { add(key); } } }
private void addSomeOf(FastIDSet possibleItemIDs, FastIDSet itemIDs) { if (itemIDs.size() > maxItemsPerUser) { LongPrimitiveIterator it = new SamplingLongPrimitiveIterator(itemIDs.iterator(), (double) maxItemsPerUser / itemIDs.size()); while (it.hasNext()) { possibleItemIDs.add(it.nextLong()); } } else { possibleItemIDs.addAll(itemIDs); } }
void addUserAndItemIdToUserItemFilter(Map<Long, FastIDSet> filter, Long userId, Long itemId) { FastIDSet itemIds; if (filter.containsKey(userId)) { itemIds = filter.get(userId); } else { itemIds = new FastIDSet(); filter.put(userId, itemIds); } itemIds.add(itemId); }
static FastIDSet extractAllUserIdsFromUserItemFilter(Map<Long, FastIDSet> filter) { FastIDSet result = new FastIDSet(); for (Long userId : filter.keySet()) { result.add(userId); } return result; }
void addUserAndItemIdToUserItemFilter(Map<Long, FastIDSet> filter, Long userId, Long itemId) { FastIDSet itemIds; if (filter.containsKey(userId)) { itemIds = filter.get(userId); } else { itemIds = new FastIDSet(); filter.put(userId, itemIds); } itemIds.add(itemId); }
static FastIDSet extractAllUserIdsFromUserItemFilter(Map<Long, FastIDSet> filter) { FastIDSet result = new FastIDSet(); for (Long userId : filter.keySet()) { result.add(userId); } return result; }
private static long setBits(FastIDSet modelSet, PreferenceArray prefs, int max) { long maxItem = -1; for (int i = 0; i < prefs.length() && i < max; i++) { long itemID = prefs.getItemID(i); modelSet.add(itemID); if (itemID > maxItem) { maxItem = itemID; } } return maxItem; }
/** * Sets temporary preferences for a given anonymous user. */ public void setTempPrefs(PreferenceArray prefs, long anonymousUserID) { Preconditions.checkArgument(prefs != null && prefs.length() > 0, "prefs is null or empty"); this.tempPrefs.put(anonymousUserID, prefs); FastIDSet userPrefItemIDs = new FastIDSet(); for (int i = 0; i < prefs.length(); i++) { userPrefItemIDs.add(prefs.getItemID(i)); } this.prefItemIDs.put(anonymousUserID, userPrefItemIDs); }
/** * Sets temporary preferences for a given anonymous user. */ public void setTempPrefs(PreferenceArray prefs, long anonymousUserID) { Preconditions.checkArgument(prefs != null && prefs.length() > 0, "prefs is null or empty"); this.tempPrefs.put(anonymousUserID, prefs); FastIDSet userPrefItemIDs = new FastIDSet(); for (int i = 0; i < prefs.length(); i++) { userPrefItemIDs.add(prefs.getItemID(i)); } this.prefItemIDs.put(anonymousUserID, userPrefItemIDs); }
/** * Sets temporary preferences for a given anonymous user. */ public void setTempPrefs(PreferenceArray prefs, long anonymousUserID) { Preconditions.checkArgument(prefs != null && prefs.length() > 0, "prefs is null or empty"); this.tempPrefs.put(anonymousUserID, prefs); FastIDSet userPrefItemIDs = new FastIDSet(); for (int i = 0; i < prefs.length(); i++) { userPrefItemIDs.add(prefs.getItemID(i)); } this.prefItemIDs.put(anonymousUserID, userPrefItemIDs); }
public static FastByIDMap<FastIDSet> toDataMap(FastByIDMap<PreferenceArray> data) { for (Map.Entry<Long,Object> entry : ((FastByIDMap<Object>) (FastByIDMap<?>) data).entrySet()) { PreferenceArray prefArray = (PreferenceArray) entry.getValue(); int size = prefArray.length(); FastIDSet itemIDs = new FastIDSet(size); for (int i = 0; i < size; i++) { itemIDs.add(prefArray.getItemID(i)); } entry.setValue(itemIDs); } return (FastByIDMap<FastIDSet>) (FastByIDMap<?>) data; }
private void doIndex(long fromItemID, long toItemID) { FastIDSet similarItemIDs = similarItemIDsIndex.get(fromItemID); if (similarItemIDs == null) { similarItemIDs = new FastIDSet(); similarItemIDsIndex.put(fromItemID, similarItemIDs); } similarItemIDs.add(toItemID); }
private void doIndex(long fromItemID, long toItemID) { FastIDSet similarItemIDs = similarItemIDsIndex.get(fromItemID); if (similarItemIDs == null) { similarItemIDs = new FastIDSet(); similarItemIDsIndex.put(fromItemID, similarItemIDs); } similarItemIDs.add(toItemID); }
public void setTempPrefs(PreferenceArray prefs) { Preconditions.checkArgument(prefs != null && prefs.length() > 0, "prefs is null or empty"); this.tempPrefs = prefs; this.prefItemIDs.clear(); for (int i = 0; i < prefs.length(); i++) { this.prefItemIDs.add(prefs.getItemID(i)); } }
private void doIndex(long fromItemID, long toItemID) { FastIDSet similarItemIDs = similarItemIDsIndex.get(fromItemID); if (similarItemIDs == null) { similarItemIDs = new FastIDSet(); similarItemIDsIndex.put(fromItemID, similarItemIDs); } similarItemIDs.add(toItemID); }
@Override public long[] allSimilarItemIDs(long itemID) throws TasteException { FastIDSet allSimilarItemIDs = new FastIDSet(); LongPrimitiveIterator allItemIDs = dataModel.getItemIDs(); while (allItemIDs.hasNext()) { long possiblySimilarItemID = allItemIDs.nextLong(); if (!Double.isNaN(itemSimilarity(itemID, possiblySimilarItemID))) { allSimilarItemIDs.add(possiblySimilarItemID); } } return allSimilarItemIDs.toArray(); }
@Test public void testSizeEmpty() { FastIDSet set = new FastIDSet(); assertEquals(0, set.size()); assertTrue(set.isEmpty()); set.add(1); assertEquals(1, set.size()); assertFalse(set.isEmpty()); set.remove(1); assertEquals(0, set.size()); assertTrue(set.isEmpty()); }