24#ifndef SOM_NEIGHBORHOODFUNC_H
25#define SOM_NEIGHBORHOODFUNC_H
33namespace NeighborhoodFunc {
57 const double time_constant =
static_cast<double>(total_iterations) /
m_sigma_log;
58 const double sigma =
m_init_sigma *
std::exp(-1. *
static_cast<double>(iteration) / time_constant);
62 const auto x =
static_cast<double>(
static_cast<int>(bmu.first) -
static_cast<int>(cell.first));
63 const auto y =
static_cast<double>(
static_cast<int>(bmu.second) -
static_cast<int>(cell.second));
64 const auto dist_square = x * x + y * y;
const double m_init_sigma
std::size_t m_last_iteration
double operator()(std::pair< std::size_t, std::size_t > bmu, std::pair< std::size_t, std::size_t > cell, std::size_t iteration, std::size_t total_iterations)
const double m_cutoff_mult_square
LinearUnitDisk(double initial_radius)
double operator()(std::pair< std::size_t, std::size_t > bmu, std::pair< std::size_t, std::size_t > cell, std::size_t iteration, std::size_t total_iterations)