symm.prod: Matrix multiplication envolving the symmetrizer matrix
Description
Given the order of a symmetrizer matrix \(\bold{N}\) of order \(n\) and a
conformable matrix \(\bold{X}\), performs one of the matrix-matrix operations:
\(\bold{Y} = \bold{NX}\), if side = "left", or
\(\bold{Y} = \bold{XN}\), if side = "right",
The main aim of symm.prod is to do this matrix multiplication without forming
the symmetrizer matrix.
Usage
symm.prod(n = 1, x = NULL, side = "left")
Arguments
n
order of the symmetrizer matrix.
x
numeric matrix (or vector).
side
a string selecting if symmetrizer matrix is pre-multiplying \(\bold{X}\),
that is side = "left" or post-multiplying \(\bold{X}\), by using side = "right".
Details
Underlying C code only uses information provided by symm.info to
performs the matrix multiplication. The symmetrizer matrix is never created.
N4 <- symmetrizer(n = 4, matrix = TRUE)
x <- matrix(1:32, ncol = 2)
y <- N4 %*% x
z <- symm.prod(n = 4, x) # N4 is not storedall(z == y) # matrices y and z are equal!