Docs
Toggle main menu visibility
Loading...
Searching...
No Matches
categorical_covariate_module.hpp
Go to the documentation of this file.
1
#pragma once
2
7
8
#include "
../../utils/Data.hpp
"
9
#include "
../../utils/Module.hpp
"
10
#include <numeric>
11
21
22
class
CategoricalCovariatesModule
:
public
Module
{
23
protected
:
28
29
const
std::vector<double>
prior_alpha
;
30
32
const
Data
&
data
;
33
34
const
Eigen::VectorXi
categorical_covariate_data
;
35
37
42
43
const
double
alpha_0
= std::accumulate(
prior_alpha
.begin(),
prior_alpha
.end(), 0.0);
44
const
double
lgamma_alpha_0
= std::lgamma(
alpha_0
);
45
46
double
prod_lgamma_prior
= 0;
47
49
50
public
:
59
CategoricalCovariatesModule
(
60
const
Data
&data_,
const
Eigen::VectorXi categorical_covariate, std::vector<double> prior_alpha_,
61
const
Eigen::VectorXi *old_alloc_provider =
nullptr
,
62
const
std::unordered_map<
int
, std::vector<int>> *old_cluster_members_provider_ =
nullptr
)
63
:
prior_alpha
(prior_alpha_),
data
(data_),
categorical_covariate_data
(categorical_covariate),
64
Module
(old_alloc_provider, old_cluster_members_provider_) {
65
66
for
(
const
double
&alpha :
prior_alpha
)
67
prod_lgamma_prior
+= std::lgamma(alpha);
68
}
69
73
84
double
compute_similarity_cls
(
int
cls_idx,
bool
old_allo =
false
) const override __attribute__((hot));
85
99
double
compute_similarity_obs
(
int
obs_idx,
int
cls_idx) const override __attribute__((hot));
100
110
Eigen::VectorXd
compute_similarity_obs
(
int
obs_idx) const override __attribute__((hot));
111
113
};
Data.hpp
Data structure for managing point distances and cluster allocations.
Module.hpp
Base class for modules used in processes.
CategoricalCovariatesModule::prior_alpha
const std::vector< double > prior_alpha
Definition
categorical_covariate_module.hpp:29
CategoricalCovariatesModule::prod_lgamma_prior
double prod_lgamma_prior
Definition
categorical_covariate_module.hpp:46
CategoricalCovariatesModule::data
const Data & data
Reference to data object with cluster assignments.
Definition
categorical_covariate_module.hpp:32
CategoricalCovariatesModule::alpha_0
const double alpha_0
Definition
categorical_covariate_module.hpp:43
CategoricalCovariatesModule::lgamma_alpha_0
const double lgamma_alpha_0
Definition
categorical_covariate_module.hpp:44
CategoricalCovariatesModule::CategoricalCovariatesModule
CategoricalCovariatesModule(const Data &data_, const Eigen::VectorXi categorical_covariate, std::vector< double > prior_alpha_, const Eigen::VectorXi *old_alloc_provider=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
Constructor for CategoricalCovariatesModule.
Definition
categorical_covariate_module.hpp:59
CategoricalCovariatesModule::compute_similarity_obs
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
categorical_covariate_module.cpp:46
CategoricalCovariatesModule::categorical_covariate_data
const Eigen::VectorXi categorical_covariate_data
Definition
categorical_covariate_module.hpp:34
CategoricalCovariatesModule::compute_similarity_cls
double compute_similarity_cls(int cls_idx, bool old_allo=false) const override __attribute__((hot))
Compute covariate similarity contribution for a cluster.
Definition
categorical_covariate_module.cpp:8
Data
Manages distance matrices and cluster allocations for points.
Definition
Data.hpp:26
Module::Module
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
BNPClust
processes
module
categorical_covariate_module.hpp
Generated by
1.17.0