在R
中,通过称为C_pbinom
的基础C / C ++函数来调用二项式分布的累积分布函数。我正在尝试找到该算法的基础代码,以便找出该函数用于计算累积分布函数的算法。不幸的是,我没有成功找到底层代码,也没有找到有关所使用算法的任何信息。
我的问题:如何找到函数C_pbinom
的基础C / C ++代码。另外,是否有可用的信息源显示此功能使用的算法?
我到目前为止所做的事情:在pbinom
中调用R
提供了以下详细信息:
function (q, size, prob, lower.tail = TRUE, log.p = FALSE)
.Call(C_pbinom, q, size, prob, lower.tail, log.p)
<bytecode: 0x000000000948c5a0>
<environment: namespace:stats>
我已经在NAMESPACE
库中找到并打开了基础stats
文件。该文件列出了各种功能,包括pbinom
函数,但没有提供C_pbinom
函数的代码,也没有提供指向该函数的任何指针。我还阅读了R
中有关查找源代码的related answer和有关“编译源代码”的文章here,但都没有足够的帮助来查找代码。此时,我已经死了。
答案 0 :(得分:4)
我转到Github镜像获取R源代码searched for pbinom
,然后过滤到C:这使我here。函数的作用很简单
pbeta(p, x + 1, n - x, !lower_tail, log_p)
这正在调用不完整的beta函数(= Beta发行版的CDF):这意味着您需要依次look up the pbeta
function in the code:here,它表示代码是“ TOMS708的包装器” ,它在src/nmath/toms708.c中,并进行了更详细的描述here(谷歌“ TOMS 708”)……原始代码here。
完整参考文献为here:Didonato和Morris,Jr., 《 ACM数学软件交易(TOMS)》,第18卷第3期,1992年9月,第360-373页。