Rcpp:"overloaded function with no contextual type information" 用于 R::dbeta
Rcpp: "overloaded function with no contextual type information" for R::dbeta
我有包含 Rcpp 包的 C++ 代码。
在函数中我有以下循环:
for(int i=0; i<N; i++){
double yi = y[i], xi = X_chain[i];
double numerator = R::dbeta( yi, alpha_par, beta, log=false );
double denumerator = R::dbeta( xi, alpha_par, beta, log=false );
double alpha = std::min(1.0,(numerator)/(denumerator));
(...)
}
其中 alpha_par 和 beta 是双精度值,它们是 beta 分布的参数。
对于我使用函数 R::dbeta 的两行,我都收到错误“没有上下文类型信息的重载函数”。我真的很困惑,因为代码中不同点的 runif 和 rbinom 工作得很好。
我不确定我是否重现了与您在 运行 R::dbeta(0.5, 1.0, 1.0, log = false)
时遇到的相同问题,但我认为您不应该在 C++ 中命名参数。例如。简单地做 R::dbeta(0.5, 1.0, 1.0, false)
对我有用。
我有包含 Rcpp 包的 C++ 代码。
在函数中我有以下循环:
for(int i=0; i<N; i++){
double yi = y[i], xi = X_chain[i];
double numerator = R::dbeta( yi, alpha_par, beta, log=false );
double denumerator = R::dbeta( xi, alpha_par, beta, log=false );
double alpha = std::min(1.0,(numerator)/(denumerator));
(...)
}
其中 alpha_par 和 beta 是双精度值,它们是 beta 分布的参数。
对于我使用函数 R::dbeta 的两行,我都收到错误“没有上下文类型信息的重载函数”。我真的很困惑,因为代码中不同点的 runif 和 rbinom 工作得很好。
我不确定我是否重现了与您在 运行 R::dbeta(0.5, 1.0, 1.0, log = false)
时遇到的相同问题,但我认为您不应该在 C++ 中命名参数。例如。简单地做 R::dbeta(0.5, 1.0, 1.0, false)
对我有用。