| Home | Libraries | People | FAQ | More

## Struct template variance_impl

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

## Synopsis

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

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

      // public member functions
      template<typename Args> variance_impl(Args const &);
      template<typename Args> void operator()(Args const &);
      result_type result(dont_care) const;
      template<typename Archive> void serialize(Archive &, const unsigned int);
    };

## Description

Iterative calculation of sample variance according to the formula

Equation 1.31.

where

Equation 1.32.

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

Equation 1.33.

because the difference

Equation 1.34.

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

### `variance_impl` public member functions

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

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

3.     result_type result(dont_care) const;

4.     template<typename Archive> void serialize(Archive & ar, const unsigned int);