45 const Eigen::Ref<const Eigen::VectorXi> &cls_ass_k,
57 const Eigen::Ref<const Eigen::VectorXi> &cls_ass_k,
82 const double *D_ptr =
params.D.data();
83 for (
int i = 0; i < n; ++i) {
91 for (
int val = 0; val <=
data.get_n(); ++val) {
120 const Eigen::Ref<const Eigen::VectorXi> &cls_ass_k)
const override final __attribute__((hot));
Abstract base class for likelihood computation in clustering models.
Manages distance matrices and cluster allocations for points.
Definition Data.hpp:27
Likelihood(const Data &data, const Params ¶m)
Definition Likelihood.hpp:33
const Data & data
Reference to Data object with distances and allocations.
Definition Likelihood.hpp:29
const Params & params
Reference to model parameters.
Definition Likelihood.hpp:30
Natarajan_likelihood(const Data &data, const Params ¶m)
Constructs a Likelihood object with precomputation.
Definition Natarajan_likelihood.hpp:71
double compute_repulsion(int point_index, int cluster_index, const Eigen::Ref< const Eigen::VectorXi > &cls_ass_k, int n_k) const
Computes the repulsion component of the log-likelihood.
Definition Natarajan_likelihood.cpp:138
double point_loglikelihood_cond(int point_index, int cluster_index) const override final __attribute__((hot))
Computes the conditional log-likelihood of a point given a cluster.
Definition Natarajan_likelihood.cpp:94
const double log_gamma_zeta
Precomputed log(gamma) * zeta - lgamma(zeta).
Definition Natarajan_likelihood.hpp:29
const double log_beta_alpha
Precomputed log(beta) * alpha - lgamma(alpha).
Definition Natarajan_likelihood.hpp:27
double cluster_loglikelihood(int cluster_index) const override final
Computes the full log-likelihood for a cluster.
Definition Natarajan_likelihood.cpp:9
std::vector< double > lgamma_zeta_mt_cache
Cache for lgamma(zeta_mt) values.
Definition Natarajan_likelihood.hpp:30
double compute_cohesion(int point_index, int cluster_index, const Eigen::Ref< const Eigen::VectorXi > &cls_ass_k, int n_k) const
Computes the cohesion component of the log-likelihood.
Definition Natarajan_likelihood.cpp:106
const int D_cols
Number of columns in distance matrix.
Definition Natarajan_likelihood.hpp:34
const double lgamma_delta1
Precomputed lgamma(delta1) for cohesion.
Definition Natarajan_likelihood.hpp:26
std::vector< double > log_D_data
Precomputed log distance matrix (flattened).
Definition Natarajan_likelihood.hpp:33
std::vector< double > lgamma_alpha_mh_cache
Cache for lgamma(alpha_mh) values.
Definition Natarajan_likelihood.hpp:31
const double lgamma_delta2
Precomputed lgamma(delta2) for repulsion.
Definition Natarajan_likelihood.hpp:28
Structure containing all parameters needed for the NGGP (Normalized Generalized Gamma Process) and DP...
Definition Params.hpp:35