void agglomerative::calculate_center(const cluster & cluster, point & center) { const std::vector<point> & data = *m_ptr_data; const size_t dimension = data[0].size(); center.resize(dimension, 0.0); for (auto index_point : cluster) { for (size_t index_dimension = 0; index_dimension < dimension; index_dimension++) { center[index_dimension] += data[index_point][index_dimension]; } } for (size_t index_dimension = 0; index_dimension < dimension; index_dimension++) { center[index_dimension] /= cluster.size(); } }