Classes "mpfrMatrix" and "mpfrArray"
Objects should typically be created by mpfrArray(), but
can also be created by
new("mpfrMatrix", ...) or new("mpfrArray", ...), or also
by t(x), dim(x) <- dd, or mpfr2array(x,
    dim=dd) where x is a an mpfr
“number vector”.
A (slightly more flexible) alternative to dim(x) <- dd is
mpfr2array(x, dd, dimnames).
Class "mpfrMatrix" extends "mpfrArray", directly.
signature(e1 = "mpfr", e2 = "mpfrArray"): ... 
signature(e1 = "numeric", e2 = "mpfrArray"): ... 
signature(e1 = "mpfrArray", e2 = "mpfrArray"): ... 
signature(e1 = "mpfrArray", e2 = "mpfr"): ... 
signature(e1 = "mpfrArray", e2 = "numeric"): ... 
signature(x = "mpfrArray", mode =
	"missing"): drops the dimension ‘attribute’, i.e.,
transforms x into a simple mpfr
vector.  This is an inverse of t(.) or dim(.) <- *
on such a vector.
signature(y = "ANY", x = "mpfrArray"): ... 
signature(y = "mpfrArray", x = "mpfrArray"): ... 
signature(y = "mpfrArray", x = "ANY"): ... 
signature(x = "mpfrArray", i = "ANY", j = "ANY", value = "ANY"): ... 
signature(x = "mpfrArray", i = "ANY", j = "ANY", drop = "ANY"): ... 
signature(x = "mpfrArray", i = "ANY", j = "missing", drop = "missing"):
"mpfrArray"s can be subset (“indexed”) as regular R
arrays.
signature(x = "mpfr", y = "mpfrMatrix"): Compute
the matrix/vector product x y when the dimensions
(dim) of x and y match.  If x
is not a matrix, it is treated as a 1-row or 1-column matrix (aka
“row vector” or “column vector”) depending on which
one makes sense, see the documentation of the base
function %*%.
signature(x = "mpfr", y = "Mnumber"): method
definition for cases with one mpfr and any
“number-like” argument are to use MPFR arithmetic as well.
signature(x = "mpfrMatrix", y = "mpfrMatrix"),
signature(x = "mpfrMatrix", y = "mpfr"), etc.
Further method definitions with identical semantic.
signature(x = "mpfr", y = "missing"):
Computes x'x, i.e., t(x) %*% x, typically more efficiently.
signature(x = "mpfr", y = "mpfrMatrix"):
Computes x'y, i.e., t(x) %*% y, typically more efficiently.
signature(x = "mpfrMatrix", y = "mpfrMatrix"): ... 
signature(x = "mpfrMatrix", y = "mpfr"): ... 
signature(x = "mpfr", y = "missing"):
Computes xx', i.e., x %*% t(x), typically more efficiently.
signature(x = "mpfrMatrix", y = "mpfrMatrix"):
Computes xy', i.e., x %*% t(y), typically more efficiently.
signature(x = "mpfrMatrix", y = "mpfr"): ... 
signature(x = "mpfr", y = "mpfrMatrix"): ... 
signature(from = "mpfrArray", to = "array"):
coerces from to a numeric array of the same dimension.
signature(from = "mpfrArray", to = "vector"):
as for standard arrays, this “drops” the
dim (and dimnames), i.e., returns an
mpfr vector.
signature(e1 = "mpfr", e2 = "mpfrArray"): ... 
signature(e1 = "numeric", e2 = "mpfrArray"): ... 
signature(e1 = "mpfrArray", e2 = "mpfr"): ... 
signature(e1 = "mpfrArray", e2 = "numeric"): ... 
signature(x = "mpfrArray"): ... 
signature(x = "mpfrArray"): ... 
signature(x = "mpfrArray"): ... 
signature(object = "mpfrArray"): ... 
signature(x = "mpfrArray"): ... 
signature(x = "mpfrMatrix", type = "character"):
computes the matrix norm of x, see norm
or the one in package Matrix.
signature(x = "mpfrMatrix"): tranpose the mpfrMatrix.
signature(a = "mpfrArray"): aperm(a,
	perm) is a generalization of t(.) to permute the
dimensions of an mpfrArray; it has the same semantics as the
standard aperm() method for simple R arrays.
Martin Maechler
mpfrArray, also for more examples.
showClass("mpfrMatrix")
validObject(mm <- new("mpfrMatrix"))
validObject(aa <- new("mpfrArray"))
v6 <- mpfr(1:6, 128)
m6 <- new("mpfrMatrix", v6, Dim = c(2L, 3L))
validObject(m6)
m6
which(m6 == 3, arr.ind = TRUE) # |-->  (1, 2)
## Coercion back to "vector": Both of these work:
stopifnot(identical(as(m6, "mpfr"), v6),
	  identical(as.vector(m6), v6)) # < but this is a "coincidence"
S2 <- m6[,-3] # 2 x 2
S3 <- rbind(m6, c(1:2,10)) ; s3 <- asNumeric(S3)
det(S2)
str(determinant(S2))
det(S3)
stopifnot(all.equal(det(S2), det(asNumeric(S2)), tol=1e-15),
	  all.equal(det(S3), det(s3), tol=1e-15))
## 2-column matrix indexing and replacement:
(sS <- S3[i2 <- cbind(1:2, 2:3)])
stopifnot(identical(asNumeric(sS), s3[i2]))
C3 <- S3; c3 <- s3
C3[i2] <- 10:11
c3[i2] <- 10:11
stopifnot(identical(asNumeric(C3), c3))
AA <- new("mpfrArray", as.vector(cbind(S3, -S3)), Dim=c(3L,3:2))
stopifnot(identical(AA[,,1] , S3), identical(AA[,,2] , -S3))
aa <- asNumeric(AA)
i3 <- cbind(3:1, 1:3, c(2L, 1:2))
ii3 <- Rmpfr:::.mat2ind(i3, dim(AA), dimnames(AA))
stopifnot(aa[i3] == new("mpfr", getD(AA)[ii3]))
stopifnot(identical(aa[i3], asNumeric(AA[i3])))
CA <- AA; ca <- aa
ca[i3] <- ca[i3] ^ 3
CA[i3] <- CA[i3] ^ 3
## scale():
S2. <- scale(S2)
stopifnot(all.equal(abs(as.vector(S2.)), rep(sqrt(1/mpfr(2, 128)), 4),
		    tol = 1e-30))
## norm() :
norm(S2)
stopifnot(identical(norm(S2), norm(S2, "1")),
          norm(S2, "I") == 6,
          norm(S2, "M") == 4,
          abs(norm(S2, "F") - 5.477225575051661) < 1e-15)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.