Skip to content

bpgmm 1.3.1

  • Revised the vignette set to reduce repeated examples across vignettes.
  • Made the model-and-sampler, data-preparation, model-selection, variable-prioritization, and diagnostics vignettes more formula-focused and closer to the notation in Lu, Li, and Love (2021).
  • Changed the variable-prioritization simulation so it no longer duplicates the larger MFA model-selection example.

bpgmm 1.3.0

  • Standardized the native Rcpp interface to snake_case function names.
  • Renamed C++ source files to snake_case and removed stale compiled artifacts from src/.
  • Cleaned internal native wrapper documentation while preserving sampler behavior.

bpgmm 1.2.9

  • Added data-preparation and posterior-diagnostics vignettes.
  • Expanded the vignette collection so each vignette covers a distinct analysis task: input preparation, sampler details, small worked examples, larger model selection, exploratory variable prioritization, and multi-chain diagnostics.

bpgmm 1.2.8

  • Added larger model-selection and exploratory variable-prioritization vignettes with runnable examples and plots.
  • Documented how to use posterior allocations and loading matrices for exploratory variable prioritization without presenting it as formal Bayesian variable selection.

bpgmm 1.2.7

  • Moved latent-factor score updates from R loops to native C++.
  • Moved prior density evaluation for lambda and psi to native C++ while preserving the existing internal R API.
  • Added strict native tests for latent-score sampling, input validation, and closed-form prior density checks.

bpgmm 1.2.6

  • Added pgmm_rjmcmc_chains() for CRAN-safe multi-core execution of independent RJMCMC chains.
  • Added deterministic per-chain seeding and unit tests for the independent-chain wrapper.

bpgmm 1.2.5

  • Cleaned native C++ readability without changing sampler behavior.
  • Replaced stale include guards and prototypes, removed selected namespace pollution, and clarified covariance-constraint branch checks with model-label comments.
  • Regenerated Rcpp exports after tightening native helper signatures.

bpgmm 1.2.4

  • Optimized the native allocation sampler by precomputing component covariance factorizations and sampling from normalized log probabilities directly.
  • Removed avoidable dense probability/log-density matrices and repeated per-observation covariance validation in update_PostZ().
  • Tightened native helper signatures to avoid unnecessary copies and removed stale debug-only C++ comments from the posterior lambda/psi update.

bpgmm 1.2.3

  • Added CRAN-safe base R plots to the getting-started, worked-examples, and model-and-sampler vignettes.
  • Visualized simulated clusters, posterior modal allocations, posterior model counts, and mixture-of-factor-analyzers covariance geometry.

bpgmm 1.2.2

  • Optimized the native Calculate_Cxy() helper by accumulating cluster sufficient statistics directly from labels instead of building a dense allocation matrix and multiplying through zero weights.
  • Removed repeated temporary vector construction inside the Cxy accumulation loop.
  • Preserved the existing C++11 baseline for CRAN portability.

bpgmm 1.2.1

  • Hardened Rcpp entry points with explicit validation for dimensions, finite numeric inputs, covariance constraints, and native hyperparameter vectors.
  • Kept native build settings on the existing CRAN-friendly C++11 baseline while modernizing validation and headers.
  • Cleaned native headers and removed stale C++ declarations and debug-only includes/comments.
  • Expanded native unit tests for invalid Cxy, posterior lambda/psi, and hyperparameter-update inputs.

bpgmm 1.2.0

  • Made the public API consistently snake_case now that the package has no CRAN reverse dependencies.
  • Removed legacy exported wrappers pgmmRJMCMC(), summarizePgmmRJMCMC(), and summerizePgmmRJMCMC().
  • Renamed public sampler arguments from camelCase to snake_case: m_init, m_range, q_new, d_vec, s_vec, m_step, v_step, and split_combine.
  • Renamed summary arguments and result fields to snake_case, including true_cluster, allocation, n_clusters, n_constraints, allocation_samples, and constraint_samples.
  • Updated README, pkgdown vignettes, examples, and tests for the breaking 1.2.0 API.

bpgmm 1.1.6

  • Added a model-and-sampler vignette that explains the mixture-of-factor-analyzers likelihood, PGMM covariance constraints, conjugate priors, allocation update, RJMCMC moves, and package output fields with formulas and runnable examples.
  • Linked the new mathematical vignette from the getting-started guide and pkgdown vignette index.

bpgmm 1.1.5

  • Fixed the allocation prior contribution in RJMCMC acceptance calculations to use the log product of allocated mixture weights, matching the paper’s joint posterior.

bpgmm 1.1.4

  • Standardized internal R helper names to snake_case while preserving the exported compatibility wrappers.
  • Added snake_case wrappers around generated Rcpp entry points and routed package internals through those wrappers.
  • Cleaned the source layout by renaming R files to lowercase hyphenated names and removing the ignored duplicate R/choosem/ tree.
  • Kept result-list names and legacy public arguments stable to avoid breaking existing user code.

bpgmm 1.1.3

  • Fixed Mstep = 1 by loading the cluster-number proposal helpers as package code rather than leaving them in an ignored nested R/ directory.
  • Fixed split/combine RJMCMC moves by passing X explicitly to split-allocation helpers and adding the missing latent-factor update helper.
  • Fixed the C++ allocation update to add log(tao) to component log densities instead of adding raw mixture weights.
  • Added C++ input validation for multivariate normal densities, log-ratio calculations, allocation dimensions, and mixture weights.
  • Expanded unit coverage for all eight PGMM covariance constraints, C++ helpers, cluster-number RJMCMC, covariance RJMCMC, and split/combine moves.

bpgmm 1.1.2

  • Modernized README with badges, installation guidance, paper citation, and model-constraint helper examples.
  • Added summarizePgmmRJMCMC() as the correctly spelled summary function and retained summerizePgmmRJMCMC() for backward compatibility.
  • Added tidyverse-style pgmm_rjmcmc() and summarize_pgmm_rjmcmc() as the preferred public API.
  • Deprecated pgmmRJMCMC(), summarizePgmmRJMCMC(), and summerizePgmmRJMCMC(); these names remain available as compatibility wrappers.
  • Added helpers model_to_constraint() and constraint_to_model() for translating between paper model labels and legacy constraint vectors.
  • Improved package startup citation guidance for users publishing results from bpgmm.
  • Added unit tests for the public API, covariance-constraint mapping, summary helpers, and native C++ wrappers.
  • Fixed zero-iteration handling in pgmm_rjmcmc() and added validation for sampler inputs and summary result objects.
  • Added a verbose argument to suppress per-iteration progress output in examples, tests, and scripted workflows.
  • Updated C++ build settings and validation for current R/Rcpp best practices.