private int sampleNew ( DBIDs ids , WritableDataStore < HashSetModifiableDBIDs > sampleNewNeighbors , WritableDataStore < HashSetModifiableDBIDs > newNeighborHash , int items ) { int t = 0 ; for ( DBIDIter iditer = ids . iter ( ) ; iditer . valid ( ) ; iditer . advance ( ) ) { KNNHeap realNeighbors = store . get ( iditer ) ; HashSetModifiableDBIDs newNeighbors = newNeighborHash . get ( iditer ) ; HashSetModifiableDBIDs realNewNeighbors = sampleNewNeighbors . get ( iditer ) ; realNewNeighbors . clear ( ) ; // Reuse for ( DoubleDBIDListIter heapiter = realNeighbors . unorderedIterator ( ) ; heapiter . valid ( ) ; heapiter . advance ( ) ) { if ( newNeighbors . contains ( heapiter ) ) { realNewNeighbors . add ( heapiter ) ; t ++ ; } } boundSize ( realNewNeighbors , items ) ; newNeighbors . removeDBIDs ( realNewNeighbors ) ; newNeighborHash . put ( iditer , newNeighbors ) ; } return t ; }
samples newNeighbors for every object