# calc.mu.B: Matrix Multiplication with Block Matrices In SpatioTemporal: Spatio-Temporal Model Estimation

## Description

Computes either the product between a block diagonal, square matrix `iS` and a block matrix `X`; the quadratic form of a block diagonal, square matrix, `t(X)*iS*X`; or a block matrix multiplied by a vector, `X*alpha`.

## Usage

 ```1 2 3 4 5``` ```calc.mu.B(X, alpha) calc.iS.X(X, iS) calc.X.iS.X(X, iS.X) ```

## Arguments

 `X` A list of `m` matrices with which to form the block matrix; each matrix should be `p[i]` - by - `n`. `alpha` A list of `m` vectors, with the i:th vector being of length `p[i]`. `iS` A block diagonal, square matrix, with `dm` blocks each of size `n` - by - `dn`. `iS.X` Matrix containing the product of `iS` and `X`. Output from `calc.iS.X`.

## Value

matrix containing iS*X, X'*iS*X, or X*alpha.

## Author(s)

Other likelihood utility functions: `loglikeSTdim`, `loglikeSTgetPars`, `loglikeSTnames`
Other block matrix functions: `blockMult`, `calc.FXtF2`, `calc.FX`, `calc.tFXF`, `calc.tFX`, `makeCholBlock`, `makeSigmaB`, `makeSigmaNu`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25``` ```## Create a block diagonal matrix, ... iS <- rbind(c(2,1,0,0), c(1,3,0,0), c(0,0,3,2), c(0,0,2,4)) ## ... a block matrix ... X <- list(matrix(c(1,2)), matrix(c(2,2,3,4),2,2)) ## ... with alternative form, ... Xt <- rbind(cbind(X[[1]], matrix(0,2,2)), cbind(matrix(0,2,1), X[[2]])) ## ... and a vector alpha. alpha <- list(c(1), c(-2,1)) ## Compute iS * X iS.X <- calc.iS.X(X, iS) ## or iS %*% Xt ## Compute X'* iS * X calc.X.iS.X(X, iS.X) ## or t(Xt) %*% iS %*% Xt ## Compute X* alpha calc.mu.B(X, alpha) ## or cbind(X[[1]] %*% alpha[[1]], X[[2]] %*% alpha[[2]]) ```