Diff of /vignettes/Rcpp_API.Rmd [000000] .. [dfe06d]

Switch to side-by-side view

--- a
+++ b/vignettes/Rcpp_API.Rmd
@@ -0,0 +1,110 @@
+---
+title: "outbreaker2: Rcpp API"
+author: "Thibaut Jombart"
+date: "`r Sys.Date()`"
+output:
+   rmarkdown::html_vignette:
+     toc: true
+     toc_depth: 2
+vignette: >
+  %\VignetteIndexEntry{outbreaker2: Rcpp API}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+
+
+# List of available functions
+
+The C++ functions bound to R via Rcpp used in *outbreaker2* for priors,
+likelihoods and movements are not visible to the user, as they are not exported
+by the package. However, advanced users can access these functions using `get_cpp_api()`, which returns an environment with all relevant functions:
+
+```{r}
+library(outbreaker2) 
+
+## get all functions in an environment
+x <- get_cpp_api()
+x
+
+## check content
+ls(x)
+
+## all functions are Rcpp bindings to a C++ function
+x$cpp_ll_all
+
+```
+
+
+
+# Function signatures
+
+These functions take the following arguments:
+```{r, arguments}
+
+list_args <- lapply(x, args)[ls(x)]
+list_args
+
+```
+
+Arguments are detailed in the next section.
+
+
+
+# Arguments
+
+Arguments of the Rcpp-bound C++ functions are:
+```{r}
+
+list_formals <- lapply(x, formals)
+args <- sort(unique(unlist(lapply(list_formals, names))))
+args
+
+```
+
+- **`alpha`**: a vector of integers of length 'N' (number of cases), indicating
+    infectors of each case, with values from 1 to N; missing values should be
+    `NA`
+
+- **`config`**: a list containing configuration settings as returned by
+    `create_config`
+
+- **`custom_function`**: a R function for a custom prior, with a single
+    argument, which must be a list of parameters and augmented data with the
+    class `outbreaker_param`; returned values must be **on the log scale**
+
+- **`custom_functions`**: a list of R functions obeying the rules of
+`custom_function`, named according to the priors; currently available names are:
+
+```{r, echo = FALSE} 
+
+temp <- sub("cpp_prior_", "", ls(x, pattern = "cpp_prior.*"))
+setdiff(temp, "all") 
+
+```
+
+- **`custom_ll`**: a R function for a custom likelihood, taking two arguments:
+    `data` (see `data`), and `param` (see `param`)
+
+- **`custom_prior`**: same as `custom_function`
+
+- **`data`**: a valid 'outbreaker_data' list
+
+- **`i`**: an integer scalar indicating the index of a case, from 1 to N (number of cases) 
+
+- **`list_custom_ll`**: a list of R functions obeying the rules of `custom_ll`,
+    named according to the computed likelihood component; available names are:
+
+```{r, echo = FALSE}
+temp <- sub("cpp_ll_", "", ls(x, pattern = "cpp_ll.*"))
+setdiff(temp, c("timing", "all"))	    
+```
+
+- **`param`**: a list containing parameters and augmented data with the class
+    `outbreaker_param`
+
+- **`t_inf`**: a vector of integers of length N (number of cases), indicating
+    infection dates of each case; missing values should be `NA`
+
+
+- **`x`**: a vector of integers to be sampled from