heaps.long2ObjectEntrySet().fastIterator(); while (hiter.hasNext()) { Long2ObjectMap.Entry<SortedListAccumulator<Neighbor>> me = hiter.next();
@Override protected ObjectIterator<Long2ObjectMap.Entry<V>> iterator(Long2ObjectOpenHashMap<V> map) { return map.long2ObjectEntrySet().fastIterator(); }
@Override public void write(DataOutput out) throws IOException { out.writeInt(map.size()); ObjectIterator<Long2ObjectMap.Entry<V>> iterator = map.long2ObjectEntrySet().fastIterator(); while (iterator.hasNext()) { Long2ObjectMap.Entry<V> entry = iterator.next(); out.writeLong(entry.getLongKey()); valueWriter.write(out, entry.getValue()); } }
@Override public void writePartition(DataOutput out, int partitionId) throws IOException { Long2ObjectOpenHashMap<DataInputOutput> partitionMap = map.get(partitionId); out.writeInt(partitionMap.size()); ObjectIterator<Long2ObjectMap.Entry<DataInputOutput>> iterator = partitionMap.long2ObjectEntrySet().fastIterator(); while (iterator.hasNext()) { Long2ObjectMap.Entry<DataInputOutput> entry = iterator.next(); out.writeLong(entry.getLongKey()); entry.getValue().write(out); } }
private boolean sanityCheck() { // kmer lookup is correct assert(byKmer.long2ObjectEntrySet().stream().allMatch(kvp -> kvp.getLongKey() == kvp.getValue().kmer)); // empty aggregators have been removed assert(byKmer.values().stream().allMatch(ag -> !ag.active.isEmpty())); // could have many start position entries, but only one position is valid (and even that could have duplicate entries) assert(byEnd.size() >= byKmer.size()); assert(byEnd.stream().allMatch(snapshot -> !snapshot.isValid() || byKmer.containsKey(snapshot.aggregator().kmer))); assert(byKmer.values().stream().allMatch(ag -> ag.end() >= inputPosition)); if (outputSortBuffer.isEmpty()) { assert(byKmer.isEmpty()); assert(byEnd.isEmpty()); assert(!underlying.hasNext()); } return true; } public int tracking_processedSize() {
boolean fillInstance(InstanceTuple tuple, SliceInstance instance) { Long2ObjectOpenHashMap<Object> propertyValues = _instancesValues.get(new InstanceTuple(tuple.SubgraphId, tuple.Property, tuple.IsVertexProperty, tuple.InstanceId)); if (propertyValues == null) { return false; } ObjectIterator<Long2ObjectMap.Entry<Object>> it = propertyValues.long2ObjectEntrySet().fastIterator(); while (it.hasNext()) { Long2ObjectMap.Entry<Object> entry = it.next(); InstancePropertyMap propertyMap = tuple.IsVertexProperty ? instance.getPropertiesForVertexForAdd(entry.getLongKey()) : instance.getPropertiesForEdgeForAdd(entry.getLongKey()); propertyMap.setProperty(tuple.Property, entry.getValue()); } return true; }
heaps.long2ObjectEntrySet().fastIterator(); while (hiter.hasNext()) { Long2ObjectMap.Entry<SortedListAccumulator<Neighbor>> me = hiter.next();
for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) )
for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) )
for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) )
for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) )
for ( Entry<LongsArray> en : dupesNew.long2ObjectEntrySet( ) )
for ( Entry<LongsArray> en : dupesNew.long2ObjectEntrySet( ) )
for ( Entry<IntsArray> en : dupesNew.long2ObjectEntrySet( ) )
@Override protected Bucket[] splitBucket( Bucket bucket, float xDivider, float yDivider ) { Bucket[] newBuckets = new Bucket[4]; for ( int q = 0; q < newBuckets.length; q++ ) newBuckets[q] = new Bucket( ); long[] a = bucket.singles.a; int n = bucket.singles.n; for ( int i = 0; i < n; i += 2 ) { long v1 = a[i]; long v2 = a[i + 1]; int q = quadrant( xDivider, yDivider, x( v1, v2 ), y( v1, v2 ) ); newBuckets[q].singles.append( a, i, i + 2 ); } Long2ObjectOpenHashMap<LongsArray> dupes = bucket.dupes; for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); LongsArray vs = en.getValue( ); int q = quadrant( xDivider, yDivider, xFromKey( xyKey ), yFromKey( xyKey ) ); newBuckets[q].dupes.put( xyKey, vs ); } return newBuckets; }
@Override protected Bucket[] splitBucket( Bucket bucket, float xDivider, float yDivider ) { Bucket[] newBuckets = new Bucket[4]; for ( int q = 0; q < newBuckets.length; q++ ) newBuckets[q] = new Bucket( ); long[] a = bucket.singles.a; int n = bucket.singles.n; for ( int i = 0; i < n; i++ ) { long v = a[i]; int q = quadrant( xDivider, yDivider, x( v ), y( v ) ); newBuckets[q].singles.append( v ); } Long2ObjectOpenHashMap<LongsArray> dupes = bucket.dupes; for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); LongsArray vs = en.getValue( ); int q = quadrant( xDivider, yDivider, xFromKey( xyKey ), yFromKey( xyKey ) ); newBuckets[q].dupes.put( xyKey, vs ); } return newBuckets; }
@Override protected Bucket[] splitBucket( Bucket bucket, float xDivider, float yDivider ) { Bucket[] newBuckets = new Bucket[4]; for ( int q = 0; q < newBuckets.length; q++ ) newBuckets[q] = new Bucket( ); int[] a = bucket.singles.a; int n = bucket.singles.n; for ( int i = 0; i < n; i++ ) { int v = a[i]; int q = quadrant( xDivider, yDivider, x( v ), y( v ) ); newBuckets[q].singles.append( v ); } Long2ObjectOpenHashMap<IntsArray> dupes = bucket.dupes; for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); IntsArray vs = en.getValue( ); int q = quadrant( xDivider, yDivider, xFromKey( xyKey ), yFromKey( xyKey ) ); newBuckets[q].dupes.put( xyKey, vs ); } return newBuckets; }
@Override protected void chooseDividers( float xMin, float xMax, float yMin, float yMax, Bucket bucket, float[] result ) { Long2ObjectOpenHashMap<IntsArray> dupes = bucket.dupes; IntsArray singles = bucket.singles; int[] a = singles.a; int n = singles.n; double oneOverSize = 1.0 / ( n + dupes.size( ) ); double xMean = 0; double yMean = 0; for ( int i = 0; i < n; i++ ) { int v = a[i]; xMean += truncInf( x( v ) ) * oneOverSize; yMean += truncInf( y( v ) ) * oneOverSize; } for ( Entry<IntsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); xMean += truncInf( xFromKey( xyKey ) ) * oneOverSize; yMean += truncInf( yFromKey( xyKey ) ) * oneOverSize; } result[0] = truncInf( ( float ) xMean ); result[1] = truncInf( ( float ) yMean ); }
@Override protected void chooseDividers( float xMin, float xMax, float yMin, float yMax, Bucket bucket, float[] result ) { Long2ObjectOpenHashMap<LongsArray> dupes = bucket.dupes; LongsArray singles = bucket.singles; long[] a = singles.a; int n = singles.n; double oneOverSize = 1.0 / ( n + dupes.size( ) ); double xMean = 0; double yMean = 0; for ( int i = 0; i < n; i++ ) { long v = a[i]; xMean += truncInf( x( v ) ) * oneOverSize; yMean += truncInf( y( v ) ) * oneOverSize; } for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); xMean += truncInf( xFromKey( xyKey ) ) * oneOverSize; yMean += truncInf( yFromKey( xyKey ) ) * oneOverSize; } result[0] = truncInf( ( float ) xMean ); result[1] = truncInf( ( float ) yMean ); }
@Override protected void chooseDividers( float xMin, float xMax, float yMin, float yMax, Bucket bucket, float[] result ) { Long2ObjectOpenHashMap<LongsArray> dupes = bucket.dupes; LongsArray singles = bucket.singles; long[] a = singles.a; int n = singles.n; double oneOverSize = 1.0 / ( n / 2 + dupes.size( ) ); double xMean = 0; double yMean = 0; for ( int i = 0; i < n; i += 2 ) { long v1 = a[i]; long v2 = a[i + 1]; xMean += truncInf( x( v1, v2 ) ) * oneOverSize; yMean += truncInf( y( v1, v2 ) ) * oneOverSize; } for ( Entry<LongsArray> en : dupes.long2ObjectEntrySet( ) ) { long xyKey = en.getLongKey( ); xMean += truncInf( xFromKey( xyKey ) ) * oneOverSize; yMean += truncInf( yFromKey( xyKey ) ) * oneOverSize; } result[0] = truncInf( ( float ) xMean ); result[1] = truncInf( ( float ) yMean ); }