Docs
Loading...
Searching...
No Matches
Module.hpp
Go to the documentation of this file.
1#pragma once
2
7
8#include <Eigen/Dense>
9#include <unordered_map>
10#include <vector>
11
18
19class Module {
20protected:
27 const Eigen::VectorXi *old_allocations_provider;
28
30 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider;
31
32public:
33 Module(const Eigen::VectorXi *old_allocations_provider_ = nullptr,
34 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider_ = nullptr)
35 : old_allocations_provider(old_allocations_provider_),
36 old_cluster_members_provider(old_cluster_members_provider_) {}
37
38 void set_old_allocations_provider(const Eigen::VectorXi *provider) { old_allocations_provider = provider; }
39
40 void set_old_cluster_members_provider(const std::unordered_map<int, std::vector<int>> *provider) {
42 }
43
48
59 virtual double compute_similarity_cls(int cls_idx, bool old_allo = false) const = 0;
60
74 virtual double compute_similarity_obs(int obs_idx, int cls_idx) const = 0;
75
85 virtual Eigen::VectorXd compute_similarity_obs(int obs_idx) const = 0;
86
87 virtual ~Module() = default;
88};
const Eigen::VectorXi * old_allocations_provider
Provider function for accessing old allocation state.
Definition Module.hpp:27
virtual ~Module()=default
Module(const Eigen::VectorXi *old_allocations_provider_=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
Definition Module.hpp:33
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider
Provider function for accessing old cluster members map.
Definition Module.hpp:30
void set_old_cluster_members_provider(const std::unordered_map< int, std::vector< int > > *provider)
Definition Module.hpp:40
virtual Eigen::VectorXd compute_similarity_obs(int obs_idx) const =0
Compute covariate similarity contributions for all existing clusters.
virtual double compute_similarity_obs(int obs_idx, int cls_idx) const =0
Compute similarity for a single observation in a cluster.
virtual double compute_similarity_cls(int cls_idx, bool old_allo=false) const =0
Compute similarity contribution for a cluster.
void set_old_allocations_provider(const Eigen::VectorXi *provider)
Definition Module.hpp:38