R: Basic nimbleFunctions for calculate, simulate, and getLogProb...

simNodes {nimble} | R Documentation

## Basic nimbleFunctions for calculate, simulate, and getLogProb with a set of nodes

### Description

simulate, calculate, or get existing log probabilities for the current values in a NIMBLE model

### Usage

    simNodes(model, nodes)

    calcNodes(model, nodes)

    getLogProbNodes(model, nodes)

### Arguments

`model` | A NIMBLE model
`nodes` | A set of nodes. If none are provided, default is all `model$getNodeNames()`

### Details

These are basic nimbleFunctions that take a model and set of nodes and return a function that will call `calculate`, `simulate`, or `getLogProb` on those nodes. Each is equivalent to a direct call from R, but in nimbleFunction form they can be be compiled and can be put into a nimbleFunctionList. For example, `myCalc <- calcNodes(model, nodes); ans <- myCalc()` is equivalent to `ans <- calculate(model, nodes)`, but one can also do `CmyCalc <- compileNimble(myCalc)` to get a faster version.

In nimbleFunctions, for only one set of nodes, it is equivalent or slightly better to simply use `calculate(model, nodes)` in the run-time code. The compiler will process the model-nodes combination in the same way as would occur by creating a specialized `calcNodes` in the setup code. However, if there are multiple sets of nodes, one can do the following:

Setup code: `myCalcs <- nimbleFunctionList(calcNodes); myCalcs[[1]] <- calcNodes(model, nodes[[1]]); myCalcs[[2]] <- calcNodes[[2]]`

Run code: `for(i in seq_along(myCalcs)) {ans[i] <- myCalcs[[i]]()}`

### Author(s)

Perry de Valpine

[Package nimble version 0.9.1 Index]