С помощью полезного руководства по переполнению стека мне удалось ответить на это к моему удовлетворению.Я не уверен в деталях, но здесь идет:
> rbinom
вызывает эту линию
rbinom <- function(n, size, prob) .Call(C_rbinom, n, size, prob)
, расположенную в строке 149из /src/library/stats/R/distn.R
Это, в свою очередь, вызовет
static R_INLINE SEXP random2(SEXP sn, SEXP sa, SEXP sb, ran2 fn, SEXPTYPE type)
с sn=n
, sa=size
, sb=prob
и fn=rbinom
.
В этой функции вы хотите получить код, равный 185: rx = fn(ra[i % na], rb[i % nb]);
, который показывает, что rbinom называется утилизацией как параметра size, так и параметра prob.
Соединение между random2 и rbinom устанавливается с помощьюпрепроцессор в том же файле, что и функция random2.
DEFRAND2_INT(rbinom)
#define DEFRAND2_INT(name) \
SEXP do_##name(SEXP sn, SEXP sa, SEXP sb) { \
return random2(sn, sa, sb, name, INTSXP); \
}