Package freenet.support

Source Code of freenet.support.Histogram2

package freenet.support;

import freenet.support.math.RunningAverage;
import freenet.support.math.TrivialRunningAverage;

/**
* Similiar to a standard histogram, but each bar is reasoned independently.
* Pretty much just an array of running averages.
* Used for tracking success rates per-location.
*/
public class Histogram2 {

  private final double MAX;
  private final RunningAverage[] bars;

  public Histogram2(final int numBars, final double maxValue) {
    this.MAX=maxValue;
    this.bars=new RunningAverage[numBars];
    for (int i=0; i<numBars; i++) {
      this.bars[i]=new TrivialRunningAverage();
    }
  }

  public void report(final double key, final double value) {
    if (key<0.0 || key>=MAX) return;
    int n=(int)(bars.length*key/MAX);
    bars[n].report(value);
  }

  public int[] getPercentageArray(int localMax) {
    int[] retval=new int[bars.length];
    for (int i=0; i<retval.length; i++) {
      int val=(int)(bars[i].currentValue()*localMax/MAX);
      retval[i]=val;
    }
    return retval;
  }
}
TOP

Related Classes of freenet.support.Histogram2

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.