Changes in version 0.4.4 Documentation and Other Maintenance - Switch sampling default to single-threaded execution (num_threads = 1) in both R and Python #396. This prevents CRAN pre-checks from failing due to limitations on core usage and also avoid unintentional default interaction with users' own multi-core setups. Changes in version 0.4.3 Bug Fixes - Fix serialization / deserialization roundtrip bugs in BART and BCF #393 - Safely handle / cast float32 inputs in python BART / BCF #389 - Fix ordinal cloglog probability transform for K>=4 categories #382 - Fixed bug that separated homogeneous parametric treatment effect term (tau_0) from treatment effect forest predictions (tau(x)), only including the latter in tau for BCF predictions when a parametric term is included in the model #377 - Fixed BCF prediction bug for prognostic function and mu(X) when adaptive coding is used and the tau(x) forest is not also requested by a prediction call #377 - Fixed R BCF prediction bug when covariates are passed as dataframes and an internal propensity is sampled #374 Changes in version 0.4.2 (2026-04-28) New Features - Added support for parametric treatment effect term in BCF #309 - Added support for observation-level weights passed as data arguments to BART and BCF #333 Bug Fixes - Include boost headers in sdist for Python package #362 - Fixed prediction bug for cloglog BART in R #361 - Fixed assignment bug in RFX category tracker data structure #360 - Fixed prediction bugs in binary classification sklearn wrapper #359 - Fixed several initialization, sampling and prediction bugs for cloglog #357 - Fixed num_threads pass-through bug in R BART #339 - Fixed probit offset bug in R and Python #337 - Standardized multi-chain BCF handling of internal propensity models #334 - Fixed multi-chain BCF bugs with the parametric intercept term in R and Python #326 - Fixed indexing bugs for multivariate treatment BCF in Python #326 - Convert binary factor-valued treatments to 0/1 binary numeric treatment in bcf() R function #332 Documentation and Other Maintenance - Add support for python 3.14 and drop 3.8 and 3.9 #363 Changes in version 0.4.1 Documentation and Other Maintenance - Converted all R man page titles to title case #310 - Updated Python summary() methods to print directly to console rather than return a summary string #310 - Updated vendored pybind11 dependency to version 3.0.2 #310 Changes in version 0.4.0 (2026-03-06) New Features - Added support for ordinal outcome modeling through complementary log-log link function in the BART models (#196) - Added __str__, __repr__, summary, and extract_parameter methods in Python for the BARTModel and BCFModel classes (#298) - Added plotting utility function (plot_parameter_trace) in Python that operates on both the BARTModel and BCFModel classes (#298) - Added vignettes for summary / model inspection utilities in both R and Python (#298) - Added print methods in R and __str__ methods in Python for the forest container and random effects container objects (#298) - Updated R documentation to group related functions into topics (#302): - BARTSerialization - BCFSerialization - ForestSamplesSerialization - RandomEffectSamplesSerialization - DataPreprocessing - ForestKernelComputation - ForestStateManagement - RandomEffectStateManagement - Converted the following R function names from snake case to camel case (#302): - compute_bart_posterior_interval -> computeBARTPosteriorInterval - compute_bcf_posterior_interval -> computeBCFPosteriorInterval - compute_contrast_bart_model -> computeContrastBARTModel - compute_contrast_bcf_model -> computeContrastBCFModel - extract_parameter -> extractParameter - sample_bart_posterior_predictive -> sampleBARTPosteriorPredictive - sample_bcf_posterior_predictive -> sampleBCFPosteriorPredictive Bug Fixes - Fixed status logging bugs for multi-chain R MCMC loops (#298) Changes in version 0.3.1 (2026-02-12) New Features - Replaced C++ standard library distributions (discrete_distribution, uniform_real_distribution, normal_distribution, and gamma_distribution) with custom implementations for cross-platform reproducibility. - Substituted custom implementations for base R mean(), var(), and sd() in the preprocessing logic of the R bart() and bcf() functions for enhanced numeric stability across platforms. Changes in version 0.3.0 (2026-01-27) New Features - Added print, summary, plot, and extract_parameter generic functions in R for the bartmodel and bcfmodel classes (#271) - Added sklearn-compatible estimator wrapper for BARTModel in Python (#270) Bug Fixes - Fix R bug where our approach to temporarily modifying users' RNG state failed if .Random.seed did not exist (i.e. if the R RNG hadn't yet been accessed by an R session) (#258) - Fix prediction bug for R BART models with random effects with labels that aren't straightforward 1:num_groups integers when only y_hat is requested (#256) - Fix issue with C++ standard specification in Windows R package config (#276) Changes in version 0.2.1 (2025-12-11) Bug Fixes - Fix prediction bug for univariate random effects models in R (#248) - Fix prediction bug for Python BART and BCF models with random effects with labels that aren't straightforward 0:(num_groups-1) integers (#256) Other Changes - Encode expectations about which combinations of BART / BCF features work together and ensure warning (#250) Changes in version 0.2.0 (2025-11-22) New Features - Support for multithreading in various elements of the GFR and MCMC algorithms (#182) - Support for binary outcomes in BART and BCF with a probit link (#164) - Enable "restricted sweep" of tree algorithms over a handful of trees (#173) - Support for multivariate treatment in R (#183) - Enable modification of dataset variables (weights, etc...) via low-level interface (#194) Computational Improvements - Modified default random effects initialization (#190) - Avoid double prediction on training set (#178) Bug Fixes - Fixed indexing bug in cleanup of grow-from-root (GFR) samples in BART and BCF models - Avoid using covariate preprocessor in computeForestLeafIndices function when a ForestSamples object is provided (rather than a bartmodel or bcfmodel object) - Correctly compute feature-specific split counts in R and Python (#220) - Avoid override of user-specified num_burnin parameter in BCF models with an internal propensity score (#222) - Outcome predictions correctly incorporate adaptive coding of untreated observations in BCF with binary treatment (#231) Documentation Improvements - Clarify structure / layout of samples when users request multiple chains in BART and BCF models (#220) Other Changes - Standardized naming conventions for data elements of BART and BCF models across R and Python interfaces - Covariates / features are always referred to as "X" - Treatment is always referred to as "Z" - Propensity scores are referred to as "propensity" (rather than "pi") - Outcomes are referred to as "y" - Basis vectors for leaf-wise regression models in forest terms are referred to as "leaf_basis" - Group labels for additive random effects models are referred to as "rfx_group_ids" - Basis vectors for additive random effects models are referred to as "rfx_basis" - Run-time checks for variables that are treated as continuous but have many "ties" (which presents issues with the current GFR algorithm) when only GFR samples are requested (#243) Changes in version 0.1.1 (2025-02-08) - Fixed initialization bug in several R package code examples for random effects models Changes in version 0.1.0 (2025-02-07) - Initial release on CRAN. - Support for sampling stochastic tree ensembles using two algorithms: MCMC and Grow-From-Root (GFR) - High-level model types supported: - Supervised learning with constant leaves or user-specified leaf regression models - Causal effect estimation with binary or continuous treatments - Additional high-level modeling features: - Forest-based variance function estimation (heteroskedasticity) - Additive (univariate or multivariate) group random effects - Multi-chain sampling and support for parallelism - "Warm-start" initialization of MCMC forest samplers via the Grow-From-Root (GFR) algorithm - Automated preprocessing / handling of categorical variables - Low-level interface: - Ability to combine a forest sampler with other (additive) model terms, without using C++ - Combine and sample an arbitrary number of forests or random effects terms