git / moonbite-core / src/leveldb/util/histogram.h · raw

// Copyright (c) 2011 The LevelDB Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file. See the AUTHORS file for names of contributors.#ifndef STORAGE_LEVELDB_UTIL_HISTOGRAM_H_#define STORAGE_LEVELDB_UTIL_HISTOGRAM_H_#include <string>namespace leveldb {class Histogram { public:  Histogram() {}  ~Histogram() {}  void Clear();  void Add(double value);  void Merge(const Histogram& other);  std::string ToString() const; private:  enum { kNumBuckets = 154 };  double Median() const;  double Percentile(double p) const;  double Average() const;  double StandardDeviation() const;  static const double kBucketLimit[kNumBuckets];  double min_;  double max_;  double num_;  double sum_;  double sum_squares_;  double buckets_[kNumBuckets];};}  // namespace leveldb#endif  // STORAGE_LEVELDB_UTIL_HISTOGRAM_H_