## Struct template density_impl

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

## Synopsis

**template**<**typename** Sample>
**struct** density_impl {
*// types*
**typedef** numeric::functional::average< Sample, std::size_t >::result_type float_type;
**typedef** std::vector< std::pair< float_type, float_type > > histogram_type;
**typedef** std::vector< float_type > array_type;
**typedef** iterator_range< **typename** histogram_type::iterator > result_type;
*// 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**;
};

## Description

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

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

###
`density_impl`

public member functions

**template**<**typename** Args> **void** **operator**()(Args **const** & args) ;

**template**<**typename** Args> result_type result(Args **const** & args) **const**;