12#include "../settings/settings.hpp"
13#include "../utility/utility.hpp"
29template <HistogramType histogramType = HistogramType::equ
idistant,
typename Tdata =
double>
32 std::vector<size_t> bins;
33 Tdata x_min{}, x_max{}, dx{ 1 };
40 : bins(Nbins_ + 2), x_min(x_min_), x_max(x_max_), dx((x_max_ - x_min_) / Nbins_), Nbins(Nbins_)
44 constexpr void add(Tdata x)
noexcept
52 auto i =
static_cast<int>(1 + (x - x_min) / dx);
54 const auto ssize =
static_cast<int>(bins.size());
55 i = std::max(0, std::min(i, ssize - 1));
61 [[nodiscard]]
constexpr auto begin() noexcept {
return bins.begin(); }
62 [[nodiscard]]
constexpr auto end() noexcept {
return bins.end(); }
66 auto size() const noexcept {
return bins.size(); }
78 for (
auto edge : edges)
Definition: Histogram.hpp:31
constexpr auto end() noexcept
Definition: Histogram.hpp:62
Histogram(Tdata x_min_, Tdata x_max_, int Nbins_=settings::DATASTORE_NHIST)
Definition: Histogram.hpp:39
constexpr void add(Tdata x) noexcept
Definition: Histogram.hpp:44
constexpr auto begin() noexcept
Definition: Histogram.hpp:61
friend std::ostream & operator<<(std::ostream &ofs, const Histogram<> &hist)
Definition: Histogram.hpp:71
auto getEdgeValues() const noexcept
Definition: Histogram.hpp:64
std::span< const size_t > viewBinValues() const noexcept
Definition: Histogram.hpp:59
auto size() const noexcept
Definition: Histogram.hpp:66
constexpr int DATASTORE_NHIST
length of the arrays with the histograms (if 1)
Definition: settings.hpp:49
Slide namespace contains all the types, classes, and functions for the simulation framework.
Definition: Cell.hpp:27
std::ostream & operator<<(std::ostream &os, const DynamicMatrix< Tdata > &M)
Definition: DynamicMatrix.hpp:72
HistogramType
Definition: Histogram.hpp:23
FixedData< double > range_fix(double x_min, double x_max, double x_step)
Definition: util.hpp:90