question: private void updateStatistics ( ) { long currentTime = System . currentTimeMillis ( ) ; double diffTime = currentTime - lastTime ; double diffSeed = currentSeed - lastSeed ; double diffNFE = currentNFE - lastNFE ; double percentNFE = Double . POSITIVE_INFINITY ; double percentTime = Double . POSITIVE_INFINITY ; if ( maxNFE >= 0 ) { percentNFE = diffNFE / maxNFE ; } if ( maxTime >= 0 ) { percentTime = diffTime / maxTime ; } double diffPercent = Math . min ( percentNFE , percentTime ) ; double percentChange = ( diffSeed + diffPercent ) / totalSeeds ; if ( ( diffTime > 0.0 ) && ( percentChange > 0.0001 ) ) { statistics . addValue ( diffTime / percentChange ) ; lastTime = currentTime ; lastSeed = currentSeed ; lastNFE = currentNFE ; } }
target:  Updates the moving average statistics used for estimating the remaining time.  The processing speed is measured by the NFE completed since this method was last invoked.