32 namespace UMatrix_impl {
47 return std::accumulate(dist_list.begin(), dist_list.end(), 0.) / dist_list.size();
54 template <std::
size_t ND,
typename DistFunc>
57 DistFunc dist_func {};
59 auto size = som.getSize();
71 for (
int i =
int(x) - 1; i <= (int)x + 1; ++i) {
72 for (
int j =
int(y) - 1; j <= (int)y + 1; ++ j) {
75 if (i == (
int)x && j == (int)y) {
79 if (i < 0 || i == (
int)size.first || j < 0 || j == (int)size.second) {
83 dist_list.
push_back(dist_func.distance(som(x, y), som(i, j)));
88 result(x, y) = type_func(dist_list);
GridContainer::GridContainer< std::vector< double >, std::size_t, std::size_t > UMatrix
Representation of a multi-dimensional grid which contains axis information.
std::map< UMatrixType, std::function< double(const std::vector< double > &)> > type_func_map
UMatrix computeUMatrix(const SOM< ND, DistFunc > &som, UMatrixType type)