private List<LocalRegion> getAllSortedRegionList() { List<LocalRegion> allRegionList = getAllRegionList(); // Capture the sizes so that they do not change while sorting final Object2LongOpenHashMap<LocalRegion> sizes = new Object2LongOpenHashMap<>(allRegionList.size()); for (LocalRegion region : allRegionList) { long size = region instanceof BucketRegion ? ((BucketRegion) region).getSizeForEviction() : region.size(); sizes.put(region, size); } // Sort with respect to other PR buckets also in case of multiple PRs allRegionList.sort((region1, region2) -> { long numEntries1 = sizes.get(region1); long numEntries2 = sizes.get(region2); if (numEntries1 > numEntries2) { return -1; } else if (numEntries1 < numEntries2) { return 1; } return 0; }); return allRegionList; }
@Override public double computeRelativeFrequency(K k) { return (double) counts.get(k) / getSumOfCounts(); }
@Override public double computeLogRelativeFrequency(K k) { return Math.log(counts.get(k)) - Math.log(getSumOfCounts()); }
/** * Returns the count for a given <code>sample</code>. If no such samples have been recorded yet, * <code>0</code> will be returned. * * @param sample * the sample to get the count for * @return the count for a given sample */ public long getCount(T sample) { if (freqDist.containsKey(sample)) { return freqDist.get(sample); } else { return 0; } }
public void load(File file) throws IOException, ClassNotFoundException { ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); freqDist = (Object2LongOpenHashMap<T>) in.readObject(); in.close(); int samples = 0; LongIterator sampleIter = freqDist.values().iterator(); // determine total frequency while (sampleIter.hasNext()) { long count = sampleIter.next(); samples += count; } n = samples; // determine max sample for (T key : freqDist.keySet()) { Long freq = freqDist.get(key); if (freq > maxFreq) { maxFreq = freq; maxSample = key; } } }
/** * Increases the count for a given <code>sample</code>. * * @param sample * the sample to increase the count for * @param number * the number to increase by */ public void addSample(T sample, long number) { this.n = this.n + number; long sampleFreq = number; if (freqDist.containsKey(sample)) { sampleFreq = freqDist.get(sample) + number; } freqDist.put(sample, sampleFreq); if (sampleFreq > maxFreq) { maxFreq = sampleFreq; maxSample = sample; } }
result = tx.ids.get(entityReturnIdType.get());