...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::weighted_covariance_impl — Weighted Covariance Estimator.
// In header: <boost/accumulators/statistics/weighted_covariance.hpp> template<typename Sample, typename Weight, typename VariateType, typename VariateTag> struct weighted_covariance_impl { // types typedef numeric::functional::multiplies< Weight, typename numeric::functional::average< Sample, std::size_t >::result_type >::result_type weighted_sample_type; typedef numeric::functional::multiplies< Weight, typename numeric::functional::average< VariateType, std::size_t >::result_type >::result_type weighted_variate_type; typedef numeric::functional::outer_product< weighted_sample_type, weighted_variate_type >::result_type result_type; // construct/copy/destruct template<typename Args> weighted_covariance_impl(Args const &); // public member functions template<typename Args> void operator()(Args const &) ; result_type result(dont_care) const; };