Path to this page:
Subject: CVS commit: pkgsrc/math/R-nimble
From: Makoto Fujiwara
Date: 2023-06-11 05:24:46
Message id: 20230611032446.52CCEFA89@cvs.NetBSD.org
Log Message:
(math/R-nimble) Updated 0.13.1 to 1.0.0
# CHANGES IN VERSION 1.0.0 (May 2023)
This release introduces tools for automatic differentiation in NIMBLE.
## USER LEVEL CHANGES
- Add tools for automatic differentiation. Functionality includes:
-- The ability to differentiate nimbleFunctions with respect
to input arguments in a flexible way.
-- The ability to differentiate `model$calculate()` calls
with respect to model node elements.
-- Functionality that enables Hamiltonian Monte Carlo (provided in the
`nimbleHMC` package).
-- A parameter transformation system to work in unconstrained parameter
spaces when model parameters have constrained domains.
- Add Laplace approximation algorithm, allowing a user to approximate
the marginal likelihood (integration/marginalizing over random effects/
latent process values) and find the MLE.
- Improve aspects of WAIC (PR #1256):
-- Provide aggregate and per-chain WAIC when `perChainWAIC` is `TRUE`.
-- Report number of `pWAIC` values greater than 0.4.
-- Warn user if WAIC is enabled but not set to `TRUE` in `runMCMC`.
-- Improve clarity in `help(WAIC)`.
- Reduce the default adaptation interval for the `AF_slice` sampler to 200.
- Improved control of `addSampler` method of MCMC
configuration objects (PR #1293):
-- `expandTarget` argument controls whether nodes specified in
`target` undergo expansion via `expandNodeNames`, adding a
separate sampler instance for each resulting node.
-- When `expandTarget = TRUE`, the `scalarComponents` argument is
passed as the `returnScalarComponents` argument to `expandNodeNames`.
-- Removed `nodes` argument as redundant. Target nodes are
uniquely specified using the `target` argument.
- Improve handling of resetting of scale when `adaptive=FALSE` (PR #1275).
- Allow `dcat` to have a `prob` vector of length 1 (PR #1251).
- Add error trapping for MCMC `thin` argument not positive and integer-valued
(PR #1250).
- Enhance discussion of MCMC initialization in the User Manual (issue #1247).
- Enhance discussion of indexing in loops and variables in User Manual,
including differences from JAGS.
- Rework language in `help(buildMCMC)` to improve clarity.
- Add information on predefined nimbleLists to the User Manual.
- Improve error message when user-defined distribution has incorrect dimension
for `x`.
- Improve error message when mistakenly using `T()` in deterministic rather than
stochastic model declaration.
- Improve error-trapping when a loop index is incorrectly used in indexing
a block of a variable (PR #1289).
- Error trap use of reduction operations on scalars (PR #1281).
- Error trap some cases of incorrect return type in user-defined simulation
('r') functions (PR #1280).
- Error trap case where a variable name is also used as a loop index variable
(PR #1278).
- Error trap setting deterministic nodes as data in `setData` (PR #1269).
- Better error trap of wrong size/dimensions of in `setInits` (PR #1260).
- Export `clearCompiled`, allowing users to clear compiled objects and unload
the shared library produced during nimble's compilation process (on non-Windows
operating systems).
## BUG FIXES
- Fix bug producing integer overflow in `getDependencyPathCountOneNode`
and improve efficiency of checking maximum number of paths in conjugacy
checking (PR #1322).
- Fix long-standing memory leak in `dinvwish_chol` (PR #1320).
- Fix bug giving incorrect results for `runCrossValidate`, when using the
default MSE loss function and any user-defined loss functions,
but not the 'predictive' loss function. Also, calculate loss when using
the predictive loss using the compiled model rather than the uncompiled model.
(PRs #1298, #1299).
- Fix bug in conjugacy checking that caused incorrect identification of
conjugate relationships with subsets and supersets of multivariate nodes,
as well as inconsistent slices of multivariate nodes (PR #1290).
- Fix `runMCMC` to reset the WAIC state when rerun (PR #1256).
- Fix reset mechanism for WAIC so that one can get WAIC from all the samples
in a chain that is created by multiple calls to the MCMC `$run` method even
when `getWAIC` is called in the middle (PR #1310).
- Fix bug affecting `d=2` case in uncompiled `RW_lkj_corr_cholesky` sampler
(PR #1273).
- Fix aliasing issue arising in assignment operations such as
`nf$a <- nf$a[1:3]` (PR 1301).
- Fix assignment into a block of a model variable (PR #1300).
- Fix compilation error when using `nimSeq` with integers (PR #1282).
- Fix scoping of argument evaluation for `replaceSamplers` method (PR #1287).
- Fix a corner case where particular indexing in model code prevents model
building (PR #1279).
- Fix handling of right-hand side only nodes so not flagged as deterministic
(issue #1269).
- Error trap and fix a bug in handling particular cases in list-like subsetting
(PR #1259).
- Make optimDefaultControlList handle default values completely and with
consistent compiled and uncompiled behavior.
- make nimOptim respect parscale control parameter.
- Update manual installation chapter and `INSTALL` links to gfortran on MacOS.
## DEVELOPER LEVEL CHANGES
- Take `nimbleCppADbaseClass` out of `libnimble.a` and instead make a
session-specific .o file from it to address AD-related crashes on some OSes. (PR
#1318)
- Remove `nimOptim_model` functionality. This fixes build warning on MacOS
involving `nimOptim` (PR #1276).
- Update `Eigen` copyright dates.
- Fix invisible return of `NULL` in nimbleFunctions without explicit return
statements (PR #1254).
- Fix inconsistent use of offset in internal conversion functions (PR #1277).
- Remove references to unsupported `trace` (issue #1262).
# CHANGES IN VERSION 0.13.2 (May 2023)
## DEVELOPER LEVEL CHANGES
- Remove code triggering Windows warnings about writing bytes into region of
size 0 by modifying `setLength`.
- Remove use of C++11 standard, per CRAN requirements. As part of this, replace
use of `std::ptr_fun` (PR #1292).
Files: