![]() |
Home | Libraries | People | FAQ | More |
boost::accumulators::impl::weighted_extended_p_square_impl — Multiple quantile estimation with the extended algorithm for weighted samples.
// In header: <boost/accumulators/statistics/weighted_extended_p_square.hpp> template<typename Sample, typename Weight> struct weighted_extended_p_square_impl { // types typedef numeric::functional::multiplies< Sample, Weight >::result_type weighted_sample; typedef numeric::functional::average< weighted_sample, std::size_t >::result_type float_type; typedef std::vector< float_type > array_type; typedef unspecified result_type; // construct/copy/destruct template<typename Args> weighted_extended_p_square_impl(Args const &); // public member functions template<typename Args> void operator()(Args const &); result_type result(dont_care) const; };
This version of the extended algorithm extends the extended
algorithm to support weighted samples. The extended
algorithm dynamically estimates several quantiles without storing samples. Assume that
quantiles
are to be estimated. Instead of storing the whole sample cumulative distribution, the algorithm maintains only
principal markers and
middle markers, whose positions are updated with each sample and whose heights are adjusted (if necessary) using a piecewise-parablic formula. The heights of the principal markers are the current estimates of the quantiles and are returned as an iterator range.
For further details, see
K. E. E. Raatikainen, Simultaneous estimation of several quantiles, Simulation, Volume 49, Number 4 (October), 1986, p. 159-164.
The extended algorithm generalizess the
algorithm of
R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and histograms without storing observations, Communications of the ACM, Volume 28 (October), Number 10, 1985, p. 1076-1085.