Docs
Loading...
Searching...
No Matches
binary_covariate_module.hpp
Go to the documentation of this file.
1#pragma once
2
7
10
20
22protected:
27
28 const double beta_prior_alpha = 1.0;
29 const double beta_prior_beta = 1.0;
30
32 const Data &data;
33
34 const Eigen::VectorXi binary_covariate_data;
35
37
42
43 const double log_beta_prior =
44 std::lgamma(beta_prior_alpha) + std::lgamma(beta_prior_beta) -
45 std::lgamma(beta_prior_alpha + beta_prior_beta);
47
48public:
58 BinaryCovariatesModule(const Data &data_, const Eigen::VectorXi binary_covariate, double beta_prior_alpha_,
59 double beta_prior_beta_, const Eigen::VectorXi *old_alloc_provider = nullptr,
60 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider_ = nullptr)
61 : beta_prior_alpha(beta_prior_alpha_), beta_prior_beta(beta_prior_beta_), data(data_),
62 binary_covariate_data(binary_covariate), Module(old_alloc_provider, old_cluster_members_provider_) {}
63
68
80 double compute_similarity_cls(int cls_idx, bool old_allo = false) const override __attribute__((hot));
81
95 double compute_similarity_obs(int obs_idx, int cls_idx) const override __attribute__((hot));
96
106 Eigen::VectorXd compute_similarity_obs(int obs_idx) const override __attribute__((hot));
107
109};
Data structure for managing point distances and cluster allocations.
Base class for modules used in processes.
const Data & data
Reference to data object with cluster assignments.
Definition binary_covariate_module.hpp:32
const double log_beta_prior
Definition binary_covariate_module.hpp:43
double compute_similarity_obs(int obs_idx, int cls_idx) const override __attribute__((hot))
Compute covariate similarity for a single observation in a cluster.
Definition binary_covariate_module.cpp:46
BinaryCovariatesModule(const Data &data_, const Eigen::VectorXi binary_covariate, double beta_prior_alpha_, double beta_prior_beta_, const Eigen::VectorXi *old_alloc_provider=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
Constructor for BinaryCovariatesModule.
Definition binary_covariate_module.hpp:58
const double beta_prior_beta
Definition binary_covariate_module.hpp:29
double compute_similarity_cls(int cls_idx, bool old_allo=false) const override __attribute__((hot))
Compute covariate similarity contribution for a cluster.
Definition binary_covariate_module.cpp:8
const double beta_prior_alpha
Definition binary_covariate_module.hpp:28
const Eigen::VectorXi binary_covariate_data
Definition binary_covariate_module.hpp:34
Manages distance matrices and cluster allocations for points.
Definition Data.hpp:27
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