#pragma once namespace math{ template > class Container> double average(const Container& data) { int len = data.size(); double sum = 0.0; for (auto x : data) sum += x; return sum / len; } template > class Container> double variance(const Container& data) { int len = data.size(); double sum = 0.0; double avg = average(data); for (auto x : data) sum += pow(x - avg, 2); return sum / len; } template > class Container> double standar_deviation(const Container& data) { double sd = variance(data); return sqrt(sd); } }