facmul-methods {Matrix} | R Documentation |
Multiplies a matrix or vector on the left or right by a factor from a matrix factorization or its transpose.
facmul(x, factor, y, trans = FALSE, left = TRUE, ...)
x |
a |
factor |
a character string indicating a factor in the
factorization represented by |
y |
a matrix or vector to be multiplied on the left or right by the factor or its transpose. |
trans |
a logical indicating if the transpose of the factor should be used, rather than the factor itself. |
left |
a logical indicating if the |
... |
further arguments passed to or from methods. |
facmul
is experimental and currently no methods are
exported from Matrix.
The value of op(M) %*% y
or y %*% op(M)
,
depending on left
, where M
is the factor
(always without dimnames
) and op(M)
is M
or t(M)
, depending on trans
.
## Conceptually, methods for 'facmul' _would_ behave as follows ...
## Not run:
n <- 3L
x <- lu(Matrix(rnorm(n * n), n, n))
y <- rnorm(n)
L <- unname(expand2(x)[[nm <- "L"]])
stopifnot(exprs = {
all.equal(facmul(x, nm, y, trans = FALSE, left = TRUE), L %*% y)
all.equal(facmul(x, nm, y, trans = FALSE, left = FALSE), y %*% L)
all.equal(facmul(x, nm, y, trans = TRUE, left = TRUE), crossprod(L, y))
all.equal(facmul(x, nm, y, trans = TRUE, left = FALSE), tcrossprod(y, L))
})
## End(Not run)