...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

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

// In header: <boost/accumulators/statistics/variance.hpp>template<typenameSample,typenameMeanFeature,typenameTag>structvariance_impl {// typestypedefnumeric::functional::average< Sample, std::size_t >::result_type result_type;// construct/copy/destructtemplate<typenameArgs> variance_impl(Argsconst&);// public member functionstemplate<typenameArgs>voidoperator()(Argsconst&) ; result_type result(dont_care)const; };

Iterative calculation of sample variance according to the formula

where

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

because the difference

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