8 #include "prometheus/detail/core_export.h"
10 // IWYU pragma: private, include "prometheus/summary.h"
12 namespace prometheus
{
15 class PROMETHEUS_CPP_CORE_EXPORT CKMSQuantiles
{
17 struct PROMETHEUS_CPP_CORE_EXPORT Quantile
{
18 Quantile(double quantile
, double error
);
32 Item(double value
, int lower_delta
, int delta
);
36 explicit CKMSQuantiles(const std::vector
<Quantile
>& quantiles
);
38 void insert(double value
);
43 double allowableError(int rank
);
48 const std::reference_wrapper
<const std::vector
<Quantile
>> quantiles_
;
51 std::vector
<Item
> sample_
;
52 std::array
<double, 500> buffer_
;
53 std::size_t buffer_count_
;
57 } // namespace prometheus