2015-01-11 8 views
3

매우 큰 정수를 생성하는 확률 분포와 numeric 또는 a에서 float으로 저장할 수없는 매우 작은 부동 소수점 값을 갖는 최대 우도 방법 (일반적으로 약 10^5 반복)을 사용하려고합니다. 유형.긴 숫자에 대한 연산 R

패키지에 as.bigq을 사용한다고 생각했습니다. 내 문제는 클래스/유형 bigq의 두 개체를 추가, 뺄셈, 곱셈 및 나누기 만 할 수 있지만 실제로는 로그, 전력, 감마 및 융합 초 고지 함수가 포함되어 있습니다.

이 문제를 해결하기위한 최선의 방법은 무엇입니까?

  • 다른 패키지를 사용해야합니까?
  • bigq 개체에 대해 이러한 모든 기능을 코딩해야합니까?
    • R에서 이러한 기능을 코딩하면 일부 기능이 매우 느려질 수 있습니다. 맞습니까?
    • +,-,*,/ 연산자 만 사용하여 로그 함수를 작성하는 방법은 무엇입니까? 테일러 시리즈 확장을 사용하여이 함수를 근사해야합니까?
    • 지수가 정수가 아닌 경우에만 +,-,*,/ 연산자를 사용하여 거듭 제곱 함수를 작성하는 방법은 무엇입니까?
    • confluent hypergeometric 함수 (Hypergeometric1F1Regularized[..] 함수에 해당)를 쓰는 방법은 Mathematica입니까?

나는 결국 C에서 이러한 기능을 작성하고 R에서 호출하지만 나는이 큰를 처리 할뿐만 아니라 C에서 gmp 패키지를 사용해야 특히,별로 몇 가지 복잡한 일처럼 들린다 수 번호.

답변

1

모든 문제는 getGroupMembers("Math")에 의해 반환 된 모든 기능을 임의의 정확도로 사용할 수있는 가장 가능성이있는 Rmpfr으로 해결할 수 있습니다.

네트 : 그것은 무엇을 할 수 있는지의 http://cran.r-project.org/web/packages/Rmpfr/vignettes/Rmpfr-pkg.pdf

간단한 예 : 나는 비록 초기 하 기능을 가지고 생각하지 않는다

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

Reduce("*", test) 

...