Histogram.java
Go to the documentation of this file.00001 package edu.rice.cs.hpc.viewer.graph;
00002
00003 import java.util.Arrays;
00004
00005
00006
00007
00008
00009
00010
00011 public class Histogram {
00012
00013
00014 private double freq[];
00015 private double axis_x[];
00016
00017
00018 private double data_min, data_max, data_width;
00019
00020
00021
00022
00023
00024
00025
00026
00027 public Histogram(int n_bins, double data[]) {
00028
00029 double sorted_data[] = data.clone();
00030 Arrays.sort(sorted_data);
00031 data_min = sorted_data[0];
00032 data_max = sorted_data[data.length-1];
00033
00034 data_width = ((data_max - data_min) / n_bins);
00035
00036 freq = new double[n_bins];
00037 axis_x = new double[n_bins];
00038
00039
00040
00041
00042 for (int i=0; i<n_bins; i++) {
00043 freq[i] = 0.0;
00044 axis_x[i] = data_min + (i * data_width);
00045 }
00046
00047
00048
00049
00050 for (int i=0; i<data.length; i++) {
00051 int pos = (int) ( (data[i]-data_min) / data_width);
00052 if (pos >= n_bins)
00053 pos = n_bins - 1;
00054 freq[pos]++;
00055 }
00056
00057 }
00058
00059
00060
00061
00062
00063
00064 public double[] getAxisX() {
00065 return this.axis_x;
00066 }
00067
00068
00069
00070
00071
00072
00073 public double[] getAxisY() {
00074 return this.freq;
00075 }
00076
00077
00078
00079
00080
00081
00082 public double min() {
00083 return data_min;
00084 }
00085
00086
00087
00088
00089
00090
00091 public double max() {
00092 return data_max;
00093 }
00094
00095 public double getWidth() {
00096 return data_width;
00097 }
00098 }