Changes in version 0.1.0 (2026-07-26) - First CRAN submission candidate. - Provides the public fitting interface fit_boostpm(), S3 methods for fitted objects, prediction through predict(), and simulation through simulate(). - Preserves the archived research implementation in original/ while providing a validated, portable package implementation. - Removed the provisional boosting(), eval_density_b(), and simulation_b() interfaces before the first CRAN release. - Added optional stage-level fitting messages through progress = "stage"; fitting remains silent by default. - Replaced the provisional alpha and beta split-prior controls with prior_split_prob. The default remains 0.9, matching the archived software and public experiment code, while the depth-decay extension is no longer exposed. - Removed the provisional precision fitting control and fixed the auxiliary beta-prior precision at 1, matching Appendix C and the public experiments. - Reordered fit_boostpm() arguments so that support, tree-count, split-grid, and learning-rate controls appear before lower-level regularization controls. Expanded the manual with the paper's scale-specific learning-rate formula, the exact held-out early-stopping rule, support and tie handling, split-prior interpretation, and reproducibility guidance. - Renamed the remaining implementation-oriented fitting controls to max_marginal_trees, max_dependence_trees, n_bins, max_split_depth, and min_node_observations. The superseded public names are not retained. - Replaced miniature fitted-object examples throughout the manual with reproducible two-dimensional fits using 400 observations, 100 marginal-tree candidates per variable, 1,000 dependence-tree candidates, 100 split bins, and a maximum split depth of 15. Prediction examples evaluate a 50-by-50 grid, and simulation examples generate 500 observations. All examples remain suitable for CRAN checks. - Replaced provisional fitted-object component names with descriptive names: trees, residual_coordinates, tree_diagnostics, variable_importance, heldout_diagnostics, support, and elapsed_time. Per-tree and held-out diagnostics now include marginal-versus-dependence stage labels, marginal variable labels, and held-out acceptance status. variable_importance is now a numeric vector named from the data columns when available. Fits also store the matched call and validated control settings. The provisional component names are not retained as aliases. - Clarified and separated summary() and summary-printing documentation, preserved variable names in printed importance values and simulated samples, renamed detailed prediction components to log_density and mean_log_density_path, and made documented barplot() label overrides safe in plot(). - Expanded the introductory vignette with an independent beta reference case, a nonlinear sinusoidal scenario, paper-oriented accuracy controls, fitted-density comparisons, and generated-sample visualizations. Changes in version 0.0.0.9000 - Added print(), summary(), and plot() methods for boostPM_fit objects. fit_boostpm() no longer prints elapsed fitting time automatically. - Renamed the primary public API to fit_boostpm(), predict(), and simulate(). The provisional names used during development were removed before the 0.1.0 release. - Added R-side validation for public fitting, simulation, and density-evaluation inputs. - Enforced approved parameter domains: 0 < c0 < 1, gamma >= 0, and 0 <= prior_split_prob <= 1. - Rejected constant data columns and jittered observations that leave a supplied support. - Assigned split-point equality to the left child throughout fitting, density evaluation, and inverse simulation, following the paper. - Returned -Inf log densities for evaluation points outside the support. - Removed the experimental max_n_var control from the package implementation. - Replaced unsafe bin indexing with constant-time uniform-grid lookup. Exact candidate equality remains assigned left, round-off-sized endpoint drift is clamped using a documented tolerance, and larger interval violations raise explicit errors. - Added the boostPM_fit S3 class and structured post-processing methods. - Added reproducible isolated-kernel and end-to-end benchmarks for the boundary-safe binning change. Arithmetic lookup reduced full-fit time by about 8%--33% relative to the preceding binary-search implementation; its measured cost relative to the unsafe floor kernel is 1.12--1.16 times. - Added standalone original-versus-package regression validation, paper-aligned predictive-score simulations, and a Windows/macOS/Linux R CMD check workflow. - Created a CRAN-oriented package skeleton outside the immutable research archive. - Added regression tests that preserve the archived numerical behavior. - Licensed the package source under the MIT License. - Added package author and maintainer metadata. - Split the archived R wrapper into preprocessing, controls, fitting, and post-processing modules without changing its numerical behavior. - Improved C++ portability and safety by removing GNU-specific headers and unused OpenMP flags, separating conflicting node types, removing global post-processing state, adding exception-safe tree cleanup and interrupt checks, and validating serialized post-processing inputs.