question: protected void runDBSCAN ( Relation < O > relation , RangeQuery < O > rangeQuery ) { final int size = relation . size ( ) ; FiniteProgress objprog = LOG . isVerbose ( ) ? new FiniteProgress ( "Processing objects" , size , LOG ) : null ; IndefiniteProgress clusprog = LOG . isVerbose ( ) ? new IndefiniteProgress ( "Number of clusters" , LOG ) : null ; processedIDs = DBIDUtil . newHashSet ( size ) ; ArrayModifiableDBIDs seeds = DBIDUtil . newArray ( ) ; for ( DBIDIter iditer = relation . iterDBIDs ( ) ; iditer . valid ( ) ; iditer . advance ( ) ) { if ( ! processedIDs . contains ( iditer ) ) { expandCluster ( relation , rangeQuery , iditer , seeds , objprog , clusprog ) ; } if ( objprog != null && clusprog != null ) { objprog . setProcessed ( processedIDs . size ( ) , LOG ) ; clusprog . setProcessed ( resultList . size ( ) , LOG ) ; } if ( processedIDs . size ( ) == size ) { break ; } } LOG . ensureCompleted ( objprog ) ; LOG . setCompleted ( clusprog ) ; }
target:  Run the DBSCAN algorithm