Rcpp:将 lfactorial 应用于 NumericVector

Rcpp: Apply lfactorial to NumericVector

在 Rcpp 中将 lfactorial 函数应用于 NumericVector 的 nicest/easiest 方法是什么。在 R 中我会有这样的东西:

> vec <- c(1,2,3,4)
> lfactorial(vec)
[1] 0.0000000 0.6931472 1.7917595 3.1780538

在 Rcpp 中,假设我有:

NumericVector vec = NumericVector::create(1,2,3,4);

Rcpp::internal::lfactorial 应用于 vec 的每个元素的最佳方法是什么?

感谢您的帮助。

Rcpp,就像 R 一样,是矢量化的:

R> cppFunction('NumericVector lfac(NumericVector x) { \
                                        return lfactorial(x); }')
R> lfac(1:4)
[1] 0.000000 0.693147 1.791759 3.178054
R> 

这是我为了在此处更好地阐述而简单破坏的一行代码。在复制和粘贴之前删除反斜杠。您可以将其写为 NumericVectorIntegerVector 签名。