16 #ifndef __OMNETPP_CHISTOGRAM_H 17 #define __OMNETPP_CHISTOGRAM_H 20 #include "cabstracthistogram.h" 24 class cIHistogramStrategy;
25 class cAutoRangeHistogramStrategy;
93 enum Mode {MODE_AUTO, MODE_INTEGERS, MODE_REALS, MODE_DOUBLES = MODE_REALS};
94 _OPPDEPRECATED
typedef Mode HistogramMode;
99 std::vector<double> binEdges;
100 std::vector<double> binValues;
101 double underflowSumWeights = 0, overflowSumWeights = 0;
106 virtual void collectIntoHistogram(
double value,
double weight=1);
123 explicit cHistogram(
const char *name=
nullptr,
bool weighted=
false);
129 explicit cHistogram(
const char *name,
int numBinsHint,
bool weighted=
false);
168 virtual void parsimPack(
cCommBuffer *buffer)
const override;
175 virtual void parsimUnpack(
cCommBuffer *buffer)
override;
185 virtual void collect(
double value)
override;
194 virtual void collectWeighted(
double value,
double weight)
override;
200 virtual void clear()
override;
205 virtual void saveToFile(FILE *f)
const override;
210 virtual void loadFromFile(FILE *f)
override;
215 virtual void merge(
const cStatistic *other)
override;
236 virtual bool binsAlreadySetUp()
const override;
243 virtual void setUpBins()
override;
250 virtual void setBinEdges(
const std::vector<double>& edges);
258 virtual void createUniformBins(
double lo,
double hi,
double step);
266 virtual void prependBins(
const std::vector<double>& edges);
274 virtual void appendBins(
const std::vector<double>& edges);
285 virtual void extendBinsTo(
double value,
double step,
int maxNumBins=INT_MAX);
293 virtual void mergeBins(
int groupSize);
310 virtual int getNumBins()
const override {
return binValues.size();}
315 virtual double getBinEdge(
int k)
const override {
return binEdges.at(k);}
321 virtual double getBinValue(
int k)
const override {
return binValues.at(k);}
338 virtual int64_t getNumUnderflows()
const override;
345 virtual int64_t getNumOverflows()
const override;
356 virtual void setMode(
Mode mode);
364 virtual void setRange(
double lower,
double upper);
371 virtual void setNumPrecollectedValues(
int numPrecollect);
379 virtual void setRangeExtensionFactor(
double rangeExtensionFactor);
388 virtual void setAutoExtend(
bool autoExtend);
395 virtual void setNumBinsHint(
int numCells);
402 virtual void setBinSizeHint(
double d);
408 _OPPDEPRECATED
virtual void setRangeAuto(
int numPrecollect=100,
double rangeExtensionFactor=2.0);
414 _OPPDEPRECATED
virtual void setRangeAutoLower(
double upper,
int numPrecollect=100,
double rangeExtensionFactor=2.0);
420 _OPPDEPRECATED
virtual void setRangeAutoUpper(
double lower,
int numPrecollect=100,
double rangeExtensionFactor=2.0);
425 _OPPDEPRECATED
virtual void setNumCells(
int numCells)
final {setNumBinsHint(numCells);}
430 _OPPDEPRECATED
virtual void setCellSize(
double d)
final {setBinSizeHint(d);}
Interface and base class for histogram-like density estimation classes.
Definition: cabstracthistogram.h:26
virtual double getOverflowSumWeights() const override
Definition: chistogram.h:331
virtual void collect(double value) override
virtual double getBinValue(int k) const override
Definition: chistogram.h:321
cHistogram(const cHistogram &other)
Definition: chistogram.h:140
virtual cHistogram * dup() const override
Definition: chistogram.h:161
virtual int getNumBins() const override
Definition: chistogram.h:310
const std::vector< double > & getBinEdges() const
Definition: chistogram.h:299
Buffer for the communications layer of parallel simulation.
Definition: ccommbuffer.h:41
Generic histogram class, capable of representing both unweighted and weighted distributions. Histogram data are stored as n+1 bin edges and n bin values, both being double-precision floating point values. Upper and lower outliers are kept both as counts and as sum of weights.
Definition: chistogram.h:86
Interface for histogram strategy classes. Histogram strategies encapsulate the task of setting up and...
Definition: chistogramstrategy.h:29
const std::vector< double > & getBinValues() const
Definition: chistogram.h:305
virtual void collectWeighted(double value, double weight) override
virtual _OPPDEPRECATED void setCellSize(double d) final
Definition: chistogram.h:430
Definition: cabstracthistogram.h:21
virtual double getUnderflowSumWeights() const override
Definition: chistogram.h:326
virtual _OPPDEPRECATED void setNumCells(int numCells) final
Definition: chistogram.h:425
Mode
Definition: chistogram.h:93
A generic, very configurable histogram strategy that is meant to provide a good quality histogram for...
Definition: chistogramstrategy.h:297
virtual double getBinEdge(int k) const override
Definition: chistogram.h:315
cStatistic is an abstract class for computing statistical properties of a random variable.
Definition: cstatistic.h:34
cIHistogramStrategy * getStrategy() const
Definition: chistogram.h:230