/** * Compute the intersection of two sets. * * @param a The first set. * @param b The second set. * @return The elements present in both sets. */ public static LongSortedSet setIntersect(LongSet a, LongSet b) { if (a instanceof LongSortedSet && b instanceof LongSortedSet) { return setIntersect((LongSortedSet) a, (LongSortedSet) b); } else if (a.size() <= b.size()) { LongArrayList longs = new LongArrayList(Math.min(a.size(), b.size())); LongIterator iter = a.iterator(); while (iter.hasNext()) { long key = iter.nextLong(); if (b.contains(key)) { longs.add(key); } } return LongUtils.packedSet(longs); } else { return setIntersect(b, a); } }
private Long2DoubleSortedArrayMap slowSubMap(LongSet toKeep) { LongSortedSet kept = LongUtils.setIntersect(keySet(), toKeep); double[] nvs = new double[kept.size()]; int i = keys.getLowerBound(); int j = 0; LongIterator iter = kept.iterator(); while (iter.hasNext()) { long key = iter.nextLong(); while (keys.getKey(i) < key) { i++; } nvs[j] = values[i]; j++; i++; } return wrap(SortedKeyIndex.fromCollection(kept), nvs); }
private void pruneItems(Long2ObjectMap<Long2DoubleMap> itemRatingData, Long2ObjectMap<LongSortedSet> userItems) { if (minCommonUsers <= 0) { return; } // copy items to array to all long[] items = itemRatingData.keySet().toLongArray(); for (long item: items) { Long2DoubleMap iv = itemRatingData.get(item); if (iv.size() < minCommonUsers) { itemRatingData.remove(item); } } for (Long2ObjectMap.Entry<LongSortedSet> e: userItems.long2ObjectEntrySet()) { e.setValue(LongUtils.setIntersect(e.getValue(), itemRatingData.keySet())); } } }
LongSortedSet commonKeys = LongUtils.setIntersect(vec1.keySet(), vec2.keySet()); int n = commonKeys.size(); if (n == 0) {
/** * Compute the intersection of two sets. * * @param a The first set. * @param b The second set. * @return The elements present in both sets. */ public static LongSortedSet setIntersect(LongSet a, LongSet b) { if (a instanceof LongSortedSet && b instanceof LongSortedSet) { return setIntersect((LongSortedSet) a, (LongSortedSet) b); } else if (a.size() <= b.size()) { LongArrayList longs = new LongArrayList(Math.min(a.size(), b.size())); LongIterator iter = a.iterator(); while (iter.hasNext()) { long key = iter.nextLong(); if (b.contains(key)) { longs.add(key); } } return LongUtils.packedSet(longs); } else { return setIntersect(b, a); } }
private Long2DoubleSortedArrayMap slowSubMap(LongSet toKeep) { LongSortedSet kept = LongUtils.setIntersect(keySet(), toKeep); double[] nvs = new double[kept.size()]; int i = keys.getLowerBound(); int j = 0; LongIterator iter = kept.iterator(); while (iter.hasNext()) { long key = iter.nextLong(); while (keys.getKey(i) < key) { i++; } nvs[j] = values[i]; j++; i++; } return wrap(SortedKeyIndex.fromCollection(kept), nvs); }
private void pruneItems(Long2ObjectMap<Long2DoubleMap> itemRatingData, Long2ObjectMap<LongSortedSet> userItems) { if (minCommonUsers <= 0) { return; } // copy items to array to all long[] items = itemRatingData.keySet().toLongArray(); for (long item: items) { Long2DoubleMap iv = itemRatingData.get(item); if (iv.size() < minCommonUsers) { itemRatingData.remove(item); } } for (Long2ObjectMap.Entry<LongSortedSet> e: userItems.long2ObjectEntrySet()) { e.setValue(LongUtils.setIntersect(e.getValue(), itemRatingData.keySet())); } } }
LongSortedSet commonKeys = LongUtils.setIntersect(vec1.keySet(), vec2.keySet()); int n = commonKeys.size(); if (n == 0) {