Boost C++ Libraries

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

Click here to view the latest version of this page.
PrevUpHomeNext

Struct template variance_impl

boost::accumulators::impl::variance_impl — Iterative calculation of variance.

Synopsis

template<typename Sample, typename MeanFeature, typename Tag> 
struct variance_impl {
  // types
  typedef numeric::functional::average< Sample, std::size_t >::result_type result_type;

  // construct/copy/destruct
  template<typename Args> variance_impl(Args const &);

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

Description

Iterative calculation of sample variance according to the formula

Equation1.23.


where

Equation1.24.


is the estimate of the sample mean and is the number of samples.

Note that the sample variance is not defined for .

A simplification can be obtained by the approximate recursion

Equation1.25.


because the difference

Equation1.26.


converges to zero as . However, for small the difference can be non-negligible.

variance_impl public construct/copy/destruct

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

variance_impl public member functions

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

PrevUpHomeNext