首页 > 解决方案 > rcpparmadillio 中的自导函数?

问题描述

我想通过 Rcpp 计算函数 f 的导数。我刚刚在 https://cran.r-project.org/web/packages/StanHeaders/vignettes/stanmath.html找到了一些资源,这些资源使用了 stan headers 和 rcppEigen。由于我的所有程序都是由 rcpparmadillio 编码的,所以我想知道如何通过 rcpparmadillio 和 stan 标头(可能是其他 AD 包)访问自导函数。

 #include <RcppArmadillo.h>

// [[Rcpp::plugins("cpp11")]]
// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadilloExtensions/sample.h>
using namespace Rcpp;
using namespace arma;
using namespace std;


/* function */
// [[Rcpp::export]]
doule f(arma::rowvec x){
 arma::mat yy=x.t()*x;
 double res=arma::sun(x);
 rerutn(res);
}

标签: rrcpprcpparmadilloautodiff

解决方案


(目前非常新的)tsetsad包为 ETS(“平滑”)时间序列模型的上下文执行此操作,依赖于包TMB的设施。然后由本身使用RcppArmadillo的包tsets使用它。

所有这些都是相当新的,我自己也没有机会去探索——但它提供了一个非常令人兴奋的工作演示。


推荐阅读