# gmp-conversions: Conversion Utilities gmp <-> Rmpfr In Rmpfr: R MPFR - Multiple Precision Floating-Point Reliable

## Description

Coerce from and to big integers (`bigz`) and `mpfr` numbers.

Further, coerce from big rationals (`bigq`) to `mpfr` numbers.

## Usage

 ```1 2 3``` ```.bigz2mpfr(x, precB = NULL, rnd.mode = c('N','D','U','Z','A')) .bigq2mpfr(x, precB = NULL, rnd.mode = c('N','D','U','Z','A')) .mpfr2bigz(x, mod = NA) ```

## Arguments

 `x` an R object of class `bigz`, `bigq` or `mpfr` respectively. `precB` precision in bits for the result. The default, `NULL`, means to use the minimal precision necessary for correct representation. `rnd.mode` a 1-letter string specifying how rounding should happen at C-level conversion to MPFR, see details of `mpfr`. `mod` a possible modulus, see `as.bigz` in package gmp.

## Details

Note that we also provide the natural (S4) coercions, `as(x, "mpfr")` for `x` inheriting from class `"bigz"` or `"bigq"`.

## Value

a numeric vector of the same length as `x`, of the desired class.

## See Also

`mpfr()`, `as.bigz` and `as.bigq` in package gmp.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ``` S <- gmp::Stirling2(50,10) show(S) SS <- S * as.bigz(1:3)^128 stopifnot(all.equal(log2(SS[2]) - log2(S), 128, tolerance=1e-15), identical(SS, .mpfr2bigz(.bigz2mpfr(SS)))) .bigz2mpfr(S) # 148 bit precision .bigz2mpfr(S, precB=256) # 256 bit ## rational --> mpfr: sq <- SS / as.bigz(2)^100 MP <- as(sq, "mpfr") stopifnot(identical(MP, .bigq2mpfr(sq)), SS == MP * as(2, "mpfr")^100) ```

Rmpfr documentation built on Aug. 19, 2018, 3 a.m.