FourBits <- mpfr(matrix(0:31, 8, 4, dimnames = list(0:7, c(0,8,16,24))),
precBits=4) ## 4 significant bits
FourBits
formatHex(FourBits)
formatBin(FourBits, style = " ")
formatBin(FourBits, scientific=FALSE)
formatDec(FourBits)
## as "Ncharacter" 'inherits from' "character", this now works too :
data.frame(Dec = c( formatDec(FourBits) ), formatHex(FourBits),
Bin = formatBin(FourBits, style = " "))
FBB <- formatBin(FourBits) ; clB <- class(FBB)
(nFBB <- mpfr(FBB))
stopifnot(class(FBB)[1] == "Ncharacter",
all.equal(nFBB, FourBits, tol=0))
FBH <- formatHex(FourBits) ; clH <- class(FBH)
(nFBH <- mpfr(FBH))
stopifnot(class(FBH)[1] == "Ncharacter",
all.equal(nFBH, FourBits, tol=0))
## Compare the different "formattings" (details will change, i.e. improve!)%% FIXME
M <- mpfr(c(-Inf, -1.25, 1/(-Inf), NA, 0, .5, 1:2, Inf), 3)
data.frame(fH = formatHex(M), f16 = format(M, base=16),
fB = formatBin(M), f2 = format(M, base= 2),
fD = formatDec(M), f10 = format(M), # base = 10 is default
fSci= format(M, scientific=TRUE),
fFix= format(M, scientific=FALSE))
## Other methods ("[", t()) also work :
stopifnot(dim(F1 <- FBB[, 1, drop=FALSE]) == c(8,1), identical(class( F1), clB),
dim(t(F1)) == c(1,8), identical(class(t(F1)),clB),
is.null(dim(F.2 <- FBB[,2])), identical(class( F.2), clB),
dim(F22 <- FBH[1:2, 3:4]) == c(2,2), identical(class(F22), clH),
identical(class(FBH[2,3]), clH), is.null(dim(FBH[2,3])),
identical(FBH[2,3:4], F22[2,]),
identical(FBH[2,3], unname(FBH[,3][2])),
TRUE)
TenFrac <- matrix((1:10)/10, dimnames=list(1:10, expression(1/x)))
TenFrac9 <- mpfr(TenFrac, precBits=9) ## 9 significant bits
TenFrac9
formatHex(TenFrac9)
formatBin(TenFrac9)
formatBin(TenFrac9, scientific=FALSE)
formatDec(TenFrac9)
formatDec(TenFrac9, precBits=10)
Run the code above in your browser using DataLab