private void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Test(expected = NoSuchElementException.class) public void testNext() { LongPrimitiveIterator it = new LongPrimitiveArrayIterator(new long[] {3,2,1}); assertTrue(it.hasNext()); assertEquals(3, (long) it.next()); assertTrue(it.hasNext()); assertEquals(2, it.nextLong()); assertTrue(it.hasNext()); assertEquals(1, (long) it.next()); assertFalse(it.hasNext()); it.nextLong(); }
private void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
private void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Override public void skip(int n) { int toSkip = 0; for (int i = 0; i < n; i++) { toSkip += geometricDistribution.sample(); } delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
private void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Override public void skip(int n) { int toSkip = 0; for (int i = 0; i < n; i++) { toSkip += geometricDistribution.sample(); } delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Override public void skip(int n) { int toSkip = 0; for (int i = 0; i < n; i++) { toSkip += geometricDistribution.sample(); } delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Override public void skip(int n) { int toSkip = 0; for (int i = 0; i < n; i++) { toSkip += geometricDistribution.sample(); } delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
@Override public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); int numItems = dataModel.getNumItems(); List<RecommendedItem> result = Lists.newArrayListWithCapacity(howMany); while (result.size() < howMany) { LongPrimitiveIterator it = dataModel.getItemIDs(); it.skip(random.nextInt(numItems)); long itemID = it.next(); if (includeKnownItems || dataModel.getPreferenceValue(userID, itemID) == null) { result.add(new GenericRecommendedItem(itemID, randomPref())); } } return result; }
@Override public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); int numItems = dataModel.getNumItems(); List<RecommendedItem> result = new ArrayList<>(howMany); while (result.size() < howMany) { LongPrimitiveIterator it = dataModel.getItemIDs(); it.skip(random.nextInt(numItems)); long itemID = it.next(); if (includeKnownItems || dataModel.getPreferenceValue(userID, itemID) == null) { result.add(new GenericRecommendedItem(itemID, randomPref())); } } return result; }
@Override public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException { DataModel dataModel = getDataModel(); int numItems = dataModel.getNumItems(); List<RecommendedItem> result = Lists.newArrayListWithCapacity(howMany); while (result.size() < howMany) { LongPrimitiveIterator it = dataModel.getItemIDs(); it.skip(random.nextInt(numItems)); long itemID = it.next(); if (dataModel.getPreferenceValue(userID, itemID) == null) { result.add(new GenericRecommendedItem(itemID, randomPref())); } } return result; }
public static LoadStatistics runLoad(Recommender recommender, int howMany) throws TasteException { DataModel dataModel = recommender.getDataModel(); int numUsers = dataModel.getNumUsers(); double sampleRate = 1000.0 / numUsers; LongPrimitiveIterator userSampler = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate); recommender.recommend(userSampler.next(), howMany); // Warm up Collection<Callable<Void>> callables = new ArrayList<>(); while (userSampler.hasNext()) { callables.add(new LoadCallable(recommender, userSampler.next())); } AtomicInteger noEstimateCounter = new AtomicInteger(); RunningAverageAndStdDev timing = new FullRunningAverageAndStdDev(); AbstractDifferenceRecommenderEvaluator.execute(callables, noEstimateCounter, timing); return new LoadStatistics(timing); }
protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); mapping.put((int) itemID, new DenseVector(featureMatrix[itemIndex(itemID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> userFeaturesMapping(LongPrimitiveIterator userIDs, int numUsers, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numUsers); while (userIDs.hasNext()) { long userID = userIDs.next(); mapping.put((int) userID, new DenseVector(featureMatrix[userIndex(userID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> userFeaturesMapping(LongPrimitiveIterator userIDs, int numUsers, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numUsers); while (userIDs.hasNext()) { long userID = userIDs.next(); int userIndex = userIndex(userID); mapping.put(userIndex, new DenseVector(featureMatrix[userIndex(userID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); int itemIndex = itemIndex(itemID); mapping.put(itemIndex, new DenseVector(featureMatrix[itemIndex(itemID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> userFeaturesMapping(LongPrimitiveIterator userIDs, int numUsers, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numUsers); while (userIDs.hasNext()) { long userID = userIDs.next(); int userIndex = userIndex(userID); mapping.put(userIndex, new DenseVector(featureMatrix[userIndex(userID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); int itemIndex = itemIndex(itemID); mapping.put(itemIndex, new DenseVector(featureMatrix[itemIndex(itemID)], true)); } return mapping; }
@Test(expected = NoSuchElementException.class) public void testEmpty() { LongPrimitiveIterator it = new LongPrimitiveArrayIterator(new long[0]); assertFalse(it.hasNext()); it.next(); }