private int convertScoreToPercentile(double score) throws AdeInternalException {
  final double highestScore=m_percentiles[m_percentiles.length - 1];
  if (score > highestScore * 1.5) {
    return (int)Math.ceil(NUM_BUCKETS * 1.01);
  }
  for (int i=0; i < NUM_BUCKETS; ++i) {
    if (score <= m_percentiles[i]) {
      return i;
    }
  }
  return NUM_BUCKETS;
}

private int convertScoreToPercentile ( double score ) throws AdeInternalException { final double highestScore = m_percentiles [ m_percentiles . length - 1 ] ; if ( score > highestScore * 1.5 ) { return ( int ) Math . ceil ( NUM_BUCKETS * 1.01 ) ; } for ( int i = 0 ; i < NUM_BUCKETS ; ++ i ) { if ( score <= m_percentiles [ i ] ) { return i ; } } return NUM_BUCKETS ; }
calculate the percentile for the score by seeing where the score falls in the m_percentiles array . once the score is less than or equal to a value in m_percentiles then we return the bucket number it falls in . if the score is always larger , then we return the max bucket value as the percentile . if the score is above a certain threshold then we return a value higher than the number of buckets .
