30 namespace SOMProjector_impl {
32 template <
typename T,
typename DistFunc,
typename InputIter,
typename AdderFunc,
typename BmuFunc>
34 AdderFunc adder_func, BmuFunc bmu_func,
const T& init_cell) {
37 auto size = som.getSize();
41 for (
auto& cell : result) {
46 for (
auto it = begin; it != end; ++it) {
53 std::tie(x, y, dist) = bmu_func(input);
56 adder_func(result(x, y), input);
64 template <
typename T,
typename DistFunc,
typename InputIter,
typename WeightFunc,
typename AdderFunc>
66 WeightFunc weight_func, AdderFunc adder_func,
const T& init_cell) {
69 return som.findBMU(input, weight_func);
75 template <
typename T,
typename DistFunc,
typename InputIter,
typename WeightFunc,
typename UncertaintyFunc,
78 WeightFunc weight_func, UncertaintyFunc uncertainty_func,
79 AdderFunc adder_func,
const T& init_cell) {
81 auto bmu_func = [&som, &weight_func,
83 return som.findBMU(input, weight_func, uncertainty_func);
Representation of a multi-dimensional grid which contains axis information.
static ProjectGrid< T > project(const SOM< DistFunc > &som, InputIter begin, InputIter end, WeightFunc weight_func, AdderFunc adder_func, const T &init_cell=T{})
SOMProjector::ProjectGrid< T > project_impl(const SOM< DistFunc > &som, InputIter begin, InputIter end, AdderFunc adder_func, BmuFunc bmu_func, const T &init_cell)