skip_on_cran() (in addition to
skip_if_no_opencl()), consistent with
existing Boston/Cleveland OpenCL tests. OpenCL coverage remains for
local checks and source builds with OpenCL; CRAN checks avoid
parallel/GPU-heavy tests that could trigger CPU time vs elapsed
time NOTES.Vignettes: A vignette that previously used the
notangle engine now uses the standard R Markdown vignette
machinery (knitr / rmarkdown::html_vignette),
so builds align with CRAN expectations and vignette index ordering
should be consistent with the rest of the package.
OpenCL sources (inst/cl): Removed
unused or superseded material, consolidated kernels and library
fragments, and aligned .cl layout and dependency tagging
with the conventions used in ‘openclport’ and ‘nmathopencl’ (prelude,
shims, nmath/ stems, family kernels under
src/). See inst/cl/README.md for how the
assembled program is stitched.
OpenCL program assembly: Reworked loading so the
full OpenCL program is built from explicit fragments (global header,
nmath closure, family/link kernels) rather than ad hoc
concatenation—clearer ownership of what enters GPU compilation and
easier parity with CPU paths.
Tests: Added and expanded testthat coverage aimed at OpenCL code paths (including binomial examples that exercise GPU envelope evaluation), complementing existing Cleveland-style checks.
Bug fix — binomial OpenCL: Binomial
f2_f3 OpenCL kernels now evaluate the data log-likelihood
with the same proportion × trial-count semantics as
dbinom_glmb on the CPU (round
successes and trials, clamped probability). This fixes envelope / PLSD
failures for aggregated binomial data
(e.g. cbind(successes, failures) /
MASS::menarche) where the previous kernels treated
y like a raw success count.
\donttest{} for
CRAN compliance.First CRAN submission. This release is a stable pre-release with a near-complete feature set relative to earlier development builds.
glmb() is a Bayesian analog for the classical
glm() function while lmb() covers Gaussian
models. Calls largely mirror those for the classical functions but
leverage pfamilies for prior specifications. Method functions largely
mirror those for the classical functions. Samples generated by the
functions are largely iid samples (no MCMC convergence dignostics are
needed).
Most of the families implemented in the glm() function
are also implemented in the glmb() function (the
lmb() function covers only gaussian() families). Link
functions that lead to log-concave likelihood functions are generally
implemented. Specifically, we have the following:
Supported likelihoods: gaussian (identity), Poisson / quasi-Poisson (log), binomial / quasi-binomial (logit, probit, cloglog), Gamma (log).
pfamily constructors are used to specify priors and play
the same kind of role for the prior specifications as
family constructors and link functions play
for the likelihoods. Specifically, we have the following:
Supported Priors: Normal (all families/links), Normal–Gamma and independent Normal–Gamma (gaussian families), and Gamma-on-precision (gaussian and Gamma families).
The package comes with a convenient Prior_Setup()
function that provides default prior input parameters for each of the
implemented models. Basic calls (without tailoring) mirror traditional
calls to the glmb() and lmb() functions
respectively and only require the user to provide the model formula and
(if not the gaussian family) the family/link function.
The function can also be used to easily adjust prior specifications (see documentation for details).
The package comes with extensive method functions that mirror those
for the classical functions. These include dedicated
print(), summary(), predict() and
simulate() functions.
The package comes with lower level modeling/simulation functions that
advanced users can use to implement block Gibbs samplers. These
generally come with less overhead than the glmb() and
lmb() functions and are called internally by the the higher
level modeling functions.
Some of the simulation functions comes with use_parallel and use_opencl options that speed up simulation for higher dimensional models.
The package also comes with extensive help files for the varios functions that are complemented with a rich set of vignettes. A large number of examples and demos are also availabel (see the READM.md file for a sample).
The notes below summarize major work during the initial development series before the 0.9.0 pre-release.
Prior_Setup() to support family-specific prior
construction.lmb(), rlmb(), and
OpenCL models.