| Brobdingnag-package {Brobdingnag} | R Documentation |
Very Large Numbers in R
Description
Very large numbers in R. Real numbers are held using their natural logarithms, plus a logical flag indicating sign. Functionality for complex numbers is also provided. The package includes a vignette that gives a step-by-step introduction to using S4 methods.
Details
The DESCRIPTION file:
| Package: | Brobdingnag |
| Type: | Package |
| Title: | Very Large Numbers in R |
| Version: | 1.2-9 |
| Authors@R: | person(given=c("Robin", "K. S."), family="Hankin", role = c("aut","cre"), email="hankin.robin@gmail.com", comment = c(ORCID = "0000-0001-5982-0415")) |
| Maintainer: | Robin K. S. Hankin <hankin.robin@gmail.com> |
| Depends: | R (>= 2.13.0), methods, Matrix (>= 1.5-0) |
| Description: | Very large numbers in R. Real numbers are held using their natural logarithms, plus a logical flag indicating sign. Functionality for complex numbers is also provided. The package includes a vignette that gives a step-by-step introduction to using S4 methods. |
| Suggests: | cubature, testthat |
| License: | GPL |
| Repository: | CRAN |
| URL: | https://github.com/RobinHankin/Brobdingnag |
| Author: | Robin K. S. Hankin [aut, cre] (<https://orcid.org/0000-0001-5982-0415>) |
Index of help topics:
Arith-methods Methods for Function Arith in package
Brobdingnag
Brobdingnag-package Very Large Numbers in R
Compare-methods Methods for Function Compare in Package
Brobdingnag
Re Real and imaginary manipulation
[.brob Extract or Replace Parts of brobs or glubs
abs Various logarithmic and circular functions for
brobs
as.numeric Coerces to numeric or complex form
brob Brobdingnagian numbers
brob-class Class "brob"
brobmat Brobdingnagian matrices
brobmat-class Class '"brobmat"'
brobmat.mult Brobdingagian matrix arithmetic
cbrob Combine Brobdingnagian vectors
getP Get and set methods for brob objects
glub Glubbdubdribian numbers: complex numbers with
Brobdingnagian real and imaginary parts
glub-class Class "glub"
index-class Class '"index"'
infinite Infinite brobs and glubs
length Get lengths of brobs and glubs
logic.brob Logical operations on brobs
plot Basic plotting of Brobs
print.brob Methods for printing brobs and glubs
sum Various summary statistics for brobs and glubs
swift-class Class "swift"
Real numbers are represented by two objects: a real, holding the
logarithm of their absolute values; and a logical, indicating the
sign. Multiplication and exponentiation are easy: the challenge is
addition. This is achieved using the (trivial) identity
\log(e^x+e^y)=x+\log(1+e^{y-x})
where, WLOG, y<x.
Complex numbers are stored as a pair of brobs: objects of class
glub.
The package is a simple example of S4 methods.
However, it could be viewed as a cautionary tale: the underlying R concepts are easy yet the S4 implementation is long and difficult. I would not recommend using S4 methods for a package as simple as this; S3 methods would have been perfectly adequate. I would suggest that S4 methods should only be used when S3 methods are demonstrably inadequate.
Author(s)
NA
Maintainer: Robin K. S. Hankin <hankin.robin@gmail.com>
References
R. K. S. Hankin 2007. “Very Large Numbers in R: Introducing Package Brobdingnag”. R News, volume 7, number 3, pages 15-16
Examples
googol <- as.brob(10)^100
googol
googol + googol/2
1/(googol + 1e99)
(1:10)^googol
googolplex <- 10^googol
googolplex
googolplex * googol # practically the same as googolplex (!)