Rationale
This is a toy library written in order bootstrap another idea, without having to carry a dependency on a real arbitrary precision library like gmp or Rmpfr.
The algorithms are straight-forward implementations of naive algorithms and are orders of magnitute slower than gmp
even
for small/moderate sized integers.
Installation
devtools::install_github('coolbutuseless/tapir')
Supported data types
The only supported datatype is an unsigned integer represented in a character string. e.g.
- “1234”
- “9237409238740928374029374293”
Supported operations
%add%
- Addition%sub%
- Subtration%sub%
- Multiplication%div%
- Division%mod%
- Modulo operator- Logical
%gt%
- greater than%gte%
- greater than or equal to%eq%
- equal to%lt%
- less than%lte%
- less than or equal to
Helper functions
rbigint(digits)
- Create a big integer with the given number of digits
Examples
a <- rbigint(30)
b <- rbigint(20)
a
[1] "481566380993563946785704271523"
b
[1] "36545007522668563750"
a %mul% b
[1] "17598847016074070094422556163003416290166435091250"
a %div% b
[1] "13177350714"
a %mod% b
[1] "21591977069287254023"
a %add% b
[1] "481566381030108954308372835273"
a %sub% b
[1] "481566380957018939263035707773"