#pragma once namespacemath{template<typenameT,template<typename,typename=std::allocator<T>>classContainer>doubleaverage(constContainer<T>&data){intlen=data.size();doublesum=0.0;for(autox:data)sum+=x;returnsum/len;}template<typenameT,template<typename,typename=std::allocator<T>>classContainer>doublevariance(constContainer<T>&data){intlen=data.size();doublesum=0.0;doubleavg=average(data);for(autox:data)sum+=pow(x-avg,2);returnsum/len;}template<typenameT,template<typename,typename=std::allocator<T>>classContainer>doublestandar_deviation(constContainer<T>&data){doublesd=variance(data);returnsqrt(sd);}}