我对在 Rcpp 中具有long double
结构的对象使用NumericVector
时有疑问。考虑以下功能:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector derivationcpp(Function f, NumericVector par, NumericVector x, long double h = 1.0e-6) {
if (h == 0 || h > 1) stop("h should assume values in the interval (0, 1).");
NumericVector result, a, b;
a = as<NumericVector>(f(par, x + h));
b = as<NumericVector>(f(par, x));
return (a - b)/h;
}
我可以将h
参数声明为long double h
还是NumericVector
结构仅支持double
参数操作?
Obrigrado。