[v3,1/8] ipa: libipa: Allow creation of empty Histogram
diff mbox series

Message ID 20240424124917.1250837-2-dan.scally@ideasonboard.com
State Superseded
Headers show
Series
  • Centralise Agc into libipa
Related show

Commit Message

Dan Scally April 24, 2024, 12:49 p.m. UTC
For convenience's sake allow the creation of empty Histograms so
they can be embedded within other Classes and filled out with
data at some later point in time.

Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
Changes in v3:

	- None

Changes in v2:

	- Added documentation

 src/ipa/libipa/histogram.cpp | 9 +++++++++
 src/ipa/libipa/histogram.h   | 1 +
 2 files changed, 10 insertions(+)

Patch
diff mbox series

diff --git a/src/ipa/libipa/histogram.cpp b/src/ipa/libipa/histogram.cpp
index 6b5cde8e..c1aac59b 100644
--- a/src/ipa/libipa/histogram.cpp
+++ b/src/ipa/libipa/histogram.cpp
@@ -28,6 +28,15 @@  namespace ipa {
  * specified bin. It can be used to find quantiles and averages between quantiles.
  */
 
+/**
+ * \fn Histogram::Histogram()
+ * \brief Construct an empty Histogram
+ *
+ * This empty constructor exists largely to allow Histograms to be embedded in
+ * other classes which may be created before the contents of the Histogram are
+ * known.
+ */
+
 /**
  * \brief Create a cumulative histogram
  * \param[in] data A pre-sorted histogram to be passed
diff --git a/src/ipa/libipa/histogram.h b/src/ipa/libipa/histogram.h
index 05bb4b80..54bb2a19 100644
--- a/src/ipa/libipa/histogram.h
+++ b/src/ipa/libipa/histogram.h
@@ -22,6 +22,7 @@  namespace ipa {
 class Histogram
 {
 public:
+	Histogram() { cumulative_.push_back(0); }
 	Histogram(Span<const uint32_t> data);
 	size_t bins() const { return cumulative_.size() - 1; }
 	uint64_t total() const { return cumulative_[cumulative_.size() - 1]; }