Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for a snapshot of the master branch, built from commit b9ab49fc70.

Struct template density_impl

boost::accumulators::impl::density_impl — Histogram density estimator.


// In header: <boost/accumulators/statistics_fwd.hpp>

template<typename Sample> 
struct density_impl : public accumulator_base {
  // construct/copy/destruct
  template<typename Args> density_impl(Args const &);

  // public member functions
  template<typename Args> void operator()(Args const &);
  template<typename Args> result_type result(Args const &) const;
  template<typename Archive> void serialize(Archive &, const unsigned int);


The histogram density estimator returns a histogram of the sample distribution. The positions and sizes of the bins are determined using a specifiable number of cached samples (cache_size). The range between the minimum and the maximum of the cached samples is subdivided into a specifiable number of bins (num_bins) of same size. Additionally, an under- and an overflow bin is added to capture future under- and overflow samples. Once the bins are determined, the cached samples and all subsequent samples are added to the correct bins. At the end, a range of std::pair is return, where each pair contains the position of the bin (lower bound) and the samples count (normalized with the total number of samples).

density_impl public construct/copy/destruct

  1. template<typename Args> density_impl(Args const & args);

density_impl public member functions

  1. template<typename Args> void operator()(Args const & args);
  2. template<typename Args> result_type result(Args const & args) const;


    The number of samples must meet or exceed the cache size

  3. template<typename Archive> 
      void serialize(Archive & ar, const unsigned int file_version);