/* get internal item IDs which we will need several times */
itemsByUser = Maps.newHashMap();
LongPrimitiveIterator userIDs = dataModel.getUserIDs();
while (userIDs.hasNext()) {
long userId = userIDs.nextLong();
int userIndex = userIndex(userId);
FastIDSet itemIDsFromUser = dataModel.getItemIDsFromUser(userId);
List<Integer> itemIndexes = Lists.newArrayListWithCapacity(itemIDsFromUser.size());
itemsByUser.put(userIndex, itemIndexes);
for (long itemID2 : itemIDsFromUser) {