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
array
s.
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 array
s, 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 array
s.
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.