13 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 45,
14 50, 60, 70, 80, 90, 100, 120, 140, 160, 180, 200, 250, 300, 350, 400, 450,
15 500, 600, 700, 800, 900, 1000, 1200, 1400, 1600, 1800, 2000, 2500, 3000,
16 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000, 12000, 14000,
17 16000, 18000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 60000,
18 70000, 80000, 90000, 100000, 120000, 140000, 160000, 180000, 200000,
19 250000, 300000, 350000, 400000, 450000, 500000, 600000, 700000, 800000,
20 900000, 1000000, 1200000, 1400000, 1600000, 1800000, 2000000, 2500000,
21 3000000, 3500000, 4000000, 4500000, 5000000, 6000000, 7000000, 8000000,
22 9000000, 10000000, 12000000, 14000000, 16000000, 18000000, 20000000,
23 25000000, 30000000, 35000000, 40000000, 45000000, 50000000, 60000000,
24 70000000, 80000000, 90000000, 100000000, 120000000, 140000000, 160000000,
25 180000000, 200000000, 250000000, 300000000, 350000000, 400000000,
26 450000000, 500000000, 600000000, 700000000, 800000000, 900000000,
27 1000000000, 1200000000, 1400000000, 1600000000, 1800000000, 2000000000,
28 2500000000.0, 3000000000.0, 3500000000.0, 4000000000.0, 4500000000.0,
29 5000000000.0, 6000000000.0, 7000000000.0, 8000000000.0, 9000000000.0,
74 double threshold =
num_ * (p / 100.0);
78 if (sum >= threshold) {
83 double right_sum = sum;
84 double pos = (threshold - left_sum) / (right_sum - left_sum);
85 double r = left_point + (right_point - left_point) * pos;
95 if (
num_ == 0.0)
return 0;
100 if (
num_ == 0.0)
return 0;
102 return sqrt(variance);
108 snprintf(buf,
sizeof(buf),
109 "Count: %.0f Average: %.4f StdDev: %.2f\n",
112 snprintf(buf,
sizeof(buf),
113 "Min: %.4f Median: %.4f Max: %.4f\n",
116 r.append(
"------------------------------------------------------\n");
117 const double mult = 100.0 /
num_;
122 snprintf(buf,
sizeof(buf),
123 "[ %7.0f, %7.0f ) %7.0f %7.3f%% %7.3f%% ",
132 int marks =
static_cast<int>(20*(
buckets_[b] /
num_) + 0.5);
133 r.append(marks,
'#');
void Merge(const Histogram &other)
double Percentile(double p) const
static const double kBucketLimit[kNumBuckets]
std::string ToString() const
double StandardDeviation() const
double buckets_[kNumBuckets]