Я только что потратил некоторое время, пытаясь найти ошибку в моем коде, которая оказалась необычной (по крайней мере для меня) параметризацией для функции R::dexp
. Например:Параметризация R :: dexp
cppFunction("
double my_dexp(double x, double lambda, double is_log) {
return R::dexp(x, lambda, is_log);
}
")
> my_dexp(4.5, 2.5, FALSE)
[1] 0.06611956
> dexp(4.5, 2.5, FALSE)
[1] 3.251824e-05
Глядя here Я могу видеть, что они используют определение:
double R::dexp(double x, double sl, int lg)
, но я не был в состоянии выяснить, что sl
стоит. Я не уверен, что это где-то документировано - так что, надеюсь, этот пост является предупреждением другим, которые использовали такую функцию, как я, а также если кто-нибудь может помочь в отношении того, какая параметризация была использована и почему.
Пятно на. Также проверьте определение 'dexp()' в 'Rmath.h' - как вы заметили, мы (в Rcpp) _allways_ используем ту же самую параметризацию, что и сам R, на уровне C, который может отличаться от уровня R. Но все это документально ... –
Спасибо вам, что поняли, что для меня – Jeff
@DirkEddelbuettel Добавил свой комментарий к ответу. Благодарю. – csgillespie