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 an old version of boost. Click here for the latest Boost documentation.

Struct template with_p_square_cumulative_distribution_weighted_median_impl

boost::accumulators::impl::with_p_square_cumulative_distribution_weighted_median_impl — Median estimation for weighted samples based on the cumulative distribution estimator.


// In header: <boost/accumulators/statistics/weighted_median.hpp>

template<typename Sample, typename Weight> 
struct with_p_square_cumulative_distribution_weighted_median_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< std::pair< float_type, float_type > >                        histogram_type; 
  typedef iterator_range< typename histogram_type::iterator >                       range_type;     
  typedef float_type                                                                result_type;    

  // construct/copy/destruct

  // public member functions
  void operator()(dont_care) ;
  template<typename Args> result_type result(Args const &) const;


The algorithm determines the first (leftmost) bin with a height exceeding 0.5. It returns the approximate horizontal position of where the cumulative distribution equals 0.5, based on a linear interpolation inside the bin.

with_p_square_cumulative_distribution_weighted_median_impl public construct/copy/destruct

  1. with_p_square_cumulative_distribution_weighted_median_impl(dont_care);

with_p_square_cumulative_distribution_weighted_median_impl public member functions

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