Docs
Loading...
Searching...
No Matches
Module.hpp
Go to the documentation of this file.
1#pragma once
2
7
8#include <Eigen/Dense>
9
16
17class Module {
18protected:
25 const Eigen::VectorXi *old_allocations_provider;
26
28 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider;
29
30public:
31 Module(const Eigen::VectorXi *old_allocations_provider_ = nullptr,
32 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider_ = nullptr)
33 : old_allocations_provider(old_allocations_provider_), old_cluster_members_provider(old_cluster_members_provider_) {}
34
35 void set_old_allocations_provider(const Eigen::VectorXi *provider) { old_allocations_provider = provider; }
36
37 void set_old_cluster_members_provider(const std::unordered_map<int, std::vector<int>> *provider) {
39 }
40
45
56 virtual double compute_similarity_cls(int cls_idx, bool old_allo = false) const = 0;
57
71 virtual double compute_similarity_obs(int obs_idx, int cls_idx) const = 0;
72
82 virtual Eigen::VectorXd compute_similarity_obs(int obs_idx) const = 0;
83
84 virtual ~Module() = default;
85};
const Eigen::VectorXi * old_allocations_provider
Provider function for accessing old allocation state.
Definition Module.hpp:25
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:31
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider
Provider function for accessing old cluster members map.
Definition Module.hpp:28
void set_old_cluster_members_provider(const std::unordered_map< int, std::vector< int > > *provider)
Definition Module.hpp:37
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:35