将lfactorial
函数应用于Rcpp中的NumericVector
是最好/最简单的方法。在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
的每个元素的最佳方法是什么?
感谢您的帮助。
答案 0 :(得分:3)
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>
这是一行代码,我只是为了更好的阐述而破解。在复制和粘贴之前删除反斜杠。您可以将其写为NumericVector
或IntegerVector
签名。