R中长数的运算

时间:2015-01-11 23:36:25

标签: r long-integer biginteger bigdecimal

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

我以为我会使用float包中的as.bigq。我的问题是,只能添加,减去,乘法和潜入两个类/类型gmp的对象,而我的分布实际上包含对数,幂,伽马和汇合超几何函数。

处理此问题的最佳选择是什么?

  • 我应该使用其他套餐吗?
  • 我应该为bigq个对象编写所有这些函数吗?
    • 在R上编码这些功能可能会导致某些功能非常慢,对吗?
    • 如何仅使用bigq运算符编写对数函数?我应该使用泰勒系列扩展来估算这个功能吗?
    • 当指数不是整数时,如何仅使用+,-,*,/运算符来编写幂函数?
    • 如何编写汇合超几何函数(相当于+,-,*,/中的Hypergeometric1F1Regularized[..]函数)?

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

1 个答案:

答案 0 :(得分:1)

所有问题都可以通过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)

我不认为它具有超几何功能但是......