36 template <
typename ValueType = UInt,
typename BinSizeType =
double>
69 Histogram(BinSizeType min, BinSizeType max, BinSizeType bin_size) :
83 template <
typename DataIterator>
84 Histogram(DataIterator
begin, DataIterator
end, BinSizeType min, BinSizeType max, BinSizeType bin_size) :
90 for (DataIterator it =
begin; it !=
end; ++it)
92 this->
inc((BinSizeType) *it);
118 return *(std::max_element(
bins_.begin(),
bins_.end()));
124 return *(std::min_element(
bins_.begin(),
bins_.end()));
146 if (index >=
bins_.size())
160 if (bin_index >=
bins_.size())
165 return (BinSizeType)(
min_ + ((BinSizeType)bin_index + 0.5) *
bin_size_);
175 if (bin_index >=
bins_.size())
179 if (bin_index + 1 ==
bins_.size())
183 return (BinSizeType)(
min_ + ((BinSizeType) bin_index + 1) *
bin_size_);
193 if (bin_index >=
bins_.size())
198 return (BinSizeType)(
min_ + (BinSizeType)bin_index *
bin_size_);
218 Size inc(BinSizeType val, ValueType increment = 1)
221 this->
bins_[bin_index] += increment;
232 Size incUntil(BinSizeType val,
bool inclusive, ValueType increment = 1)
235 for (
Size i = 0; i < bin_index; ++i)
237 this->
bins_[i] += increment;
241 this->
bins_[bin_index] += increment;
253 Size incFrom(BinSizeType val,
bool inclusive, ValueType increment = 1)
256 for (
Size i = bin_index + 1; i < this->
bins_.size(); ++i)
258 this->
bins_[i] += increment;
262 this->
bins_[bin_index] += increment;
267 template<
typename DataIterator >
273 for (DataIterator it =
begin; it !=
end; ++it)
281 histogram.
incFrom(*it, inclusive);
292 void reset(BinSizeType min, BinSizeType max, BinSizeType bin_size)
338 if (&histogram ==
this)
return *
this;
363 for (
typename std::vector<ValueType>::iterator it =
bins_.begin(); it !=
bins_.end(); ++it)
365 *it = (ValueType)(multiplier * log((BinSizeType)(*it + 1.0f)));
377 if (val < min_ || val >
max_)
405 if (this->bin_size_ <= 0)
411 if (this->max_ != this->min_)
417 this->bins_ = std::vector<ValueType>(1, 0);
424 template <
typename ValueType,
typename BinSizeType>
427 for (
Size i = 0; i < hist.
size(); ++i)
429 os << hist.
centerOfBin(i) <<
"\t"<< hist[i] << std::endl;
Int overflow exception.
Definition: Exception.h:221
Out of range exception.
Definition: Exception.h:287
Representation of a histogram.
Definition: Histogram.h:38
Histogram(BinSizeType min, BinSizeType max, BinSizeType bin_size)
constructor with min, max (inclusive) and bin width
Definition: Histogram.h:69
std::vector< ValueType > bins_
Vector of bins.
Definition: Histogram.h:399
ValueType operator[](Size index) const
returns the value of bin index
Definition: Histogram.h:144
Histogram(DataIterator begin, DataIterator end, BinSizeType min, BinSizeType max, BinSizeType bin_size)
constructor with data iterator and min, max, bin_size parameters
Definition: Histogram.h:84
void applyLogTransformation(BinSizeType multiplier)
Transforms the bin values with f(x)=multiplier*log(x+1)
Definition: Histogram.h:361
BinSizeType bin_size_
Bin size.
Definition: Histogram.h:397
virtual ~Histogram()
destructor
Definition: Histogram.h:97
std::vector< ValueType >::const_iterator ConstIterator
Non-mutable iterator of the bins.
Definition: Histogram.h:42
bool operator!=(const Histogram &histogram) const
Inequality operator.
Definition: Histogram.h:330
BinSizeType max_
Upper bound.
Definition: Histogram.h:395
ValueType maxValue() const
returns the bin with the highest count
Definition: Histogram.h:116
BinSizeType maxBound() const
returns the upper bound (inclusive)
Definition: Histogram.h:110
ConstIterator end() const
Non-mutable iterator pointing after the last bin.
Definition: Histogram.h:357
Size inc(BinSizeType val, ValueType increment=1)
increases the bin corresponding to value val by increment
Definition: Histogram.h:218
ValueType binValue(BinSizeType val) const
returns the value of bin corresponding to the value val
Definition: Histogram.h:206
bool operator==(const Histogram &histogram) const
Equality operator.
Definition: Histogram.h:321
BinSizeType rightBorderOfBin(Size bin_index) const
returns the first value to the right side of the bin with the index bin_index, which is not part of t...
Definition: Histogram.h:173
BinSizeType minBound() const
returns the lower bound (inclusive)
Definition: Histogram.h:104
Histogram & operator=(const Histogram &histogram)
Assignment.
Definition: Histogram.h:336
BinSizeType centerOfBin(Size bin_index) const
returns the center position of the bin with the index bin_index
Definition: Histogram.h:158
BinSizeType leftBorderOfBin(Size bin_index) const
returns the leftmost value of the bin with the index bin_index, which is part of this bin,...
Definition: Histogram.h:191
static void getCumulativeHistogram(DataIterator begin, DataIterator end, bool complement, bool inclusive, Histogram< ValueType, BinSizeType > &histogram)
Definition: Histogram.h:268
void reset(BinSizeType min, BinSizeType max, BinSizeType bin_size)
resets the histogram with the given range and bin size
Definition: Histogram.h:292
Size size() const
returns the number of bins
Definition: Histogram.h:134
ConstIterator begin() const
Non-mutable iterator pointing to the first bin.
Definition: Histogram.h:354
BinSizeType binSize() const
returns the bin size
Definition: Histogram.h:128
Histogram()
default constructor
Definition: Histogram.h:48
ValueType minValue() const
returns the bin with lowest count
Definition: Histogram.h:122
Size incFrom(BinSizeType val, bool inclusive, ValueType increment=1)
Increment all bins from the bin of val to the highest(=last) bin by a certain number of counts.
Definition: Histogram.h:253
Histogram(const Histogram &histogram)
copy constructor
Definition: Histogram.h:56
void initBins_()
initialize the bins
Definition: Histogram.h:403
Size incUntil(BinSizeType val, bool inclusive, ValueType increment=1)
Increment all bins from to lowest(=first) bin up to (and including?) the bin for val by a certain num...
Definition: Histogram.h:232
Size valueToBin(BinSizeType val) const
Returns the bin index a given value belongs to.
Definition: Histogram.h:374
BinSizeType min_
Lower bound.
Definition: Histogram.h:393
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
std::ostream & operator<<(std::ostream &os, const Histogram< ValueType, BinSizeType > &hist)
Print the contents to a stream.
Definition: Histogram.h:425
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22