Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "cartographer/metrics/histogram.h"
00018
00019 #include "glog/logging.h"
00020
00021 namespace cartographer {
00022 namespace metrics {
00023
00024 namespace {
00025
00026
00027 class NullHistogram : public Histogram {
00028 public:
00029 void Observe(double) override {}
00030 };
00031
00032 }
00033
00034 Histogram* Histogram::Null() {
00035 static NullHistogram null_histogram;
00036 return &null_histogram;
00037 }
00038
00039 Histogram::BucketBoundaries Histogram::FixedWidth(double width,
00040 int num_finite_buckets) {
00041 BucketBoundaries result;
00042 double boundary = 0;
00043 for (int i = 0; i < num_finite_buckets; ++i) {
00044 boundary += width;
00045 result.push_back(boundary);
00046 }
00047 return result;
00048 }
00049
00050 Histogram::BucketBoundaries Histogram::ScaledPowersOf(double base,
00051 double scale_factor,
00052 double max_value) {
00053 CHECK_GT(base, 1);
00054 CHECK_GT(scale_factor, 0);
00055 BucketBoundaries result;
00056 double boundary = scale_factor;
00057 while (boundary < max_value) {
00058 result.push_back(boundary);
00059 boundary *= base;
00060 }
00061 return result;
00062 }
00063
00064 }
00065 }