Cpp source usage

library(bvhar)

For Package Developers

This package provides public C++ headers. Some might be implement these useful.

You can use these by writing in your R package DESCRIPTION:

LinkingTo: 
    BH,
    Rcpp,
    RcppEigen,
    bvhar

Also, you can use in your single C++ source:

// [[Rcpp::depends(BH, RcppEigen, bvhar)]]
// [[Rcpp::plugins(bvhar)]]

You need to add plugins attribute because the header in this package should define USE_RCPP macro. Or you can use instead:

Sys.setenv("PKG_CPPFLAGS" = "-DUSE_RCPP")

without using plugins attribute.

MCMC headers

mcmc*.h has classes that can conduct MCMC. Since it is designed thread-safe, you can OpenMP for parallel multiple chain loop.

  1. Initialize using smart pointer (in this package: std::unique_ptr)
    • Since each class requires other structure as its parameter, you first initialize it.
    • Each struct is inside the same header.
  2. doPosteriorDraws() updates MCMC draws, so use this inside loop.
  3. returnRecords(burn, thin) returns Rcpp::List of every MCMC record.

In case of SV model, you can define your own prior by defining a derived class.