R中对长数的操作

Operations on long numbers in R

我的目标是使用最大似然法(通常大约 10^5 次迭代),其概率分布会创建非常大的整数和非常小的浮点值,这些值不能存储为 numeric 也不能存储在 float类型。

我想我会使用 gmp 包中的 as.bigq。我的问题是只能对class/typebigq的两个对象进行加减乘除,而我的分布实际上包含对数、幂、伽马和合流超几何函数。

我处理这个问题的最佳选择是什么?

我最终可以在 C 中编写这些函数并从 R 中调用它们,但这听起来像是一些复杂的工作,但并不多,特别是如果我必须使用 gmp 包在 C 中也可以处理这些大数字。

您的所有问题都可以用 Rmpfr 解决,这让您可以任意准确地使用 getGroupMembers("Math") 返回的所有函数。

插图:http://cran.r-project.org/web/packages/Rmpfr/vignettes/Rmpfr-pkg.pdf

它可以做什么的简单示例:

test <- mpfr(rnorm(100,mean=0,sd=.0001), 240)

Reduce("*", test)

虽然我认为它没有超几何函数...