# matmult: Random Matrix Multiplication In rv: Simulation-Based Random Variable Objects

## Description

Multiplies two random matrices, if they are conformable. If one argument is a vector, it will be coerced to either a row or column matrix to make the two arguments conformable. If both are vectors it will return the inner product.

## Usage

 ```1 2 3``` ``` ## S3 method for class 'rv' x %*% y x %**% y ```

## Arguments

 `x, y` numeric or complex matrices or vectors.

## Details

Optimized internally for the case of random matrix multiplied by a constant column vector.

## Value

The (distribution of the) matrix product. Use `drop` to get rid of dimensions which have only one level.

## References

Kerman, J. and Gelman, A. (2007). Manipulating and Summarizing Posterior Simulations Using Random Variable Objects. Statistics and Computing 17:3, 235-244.

See also `vignette("rv")`.

`matrix`, `Ops`, `diag`.
 ```1 2 3 4 5 6 7 8 9``` ```x <- 1:4 (z <- x %*% x) # scalar ("inner") product (1 x 1 matrix) drop(z) # as scalar y <- diag(x) z <- matrix(1:12, ncol = 3, nrow = 4) y %*% z y %*% x x %*% z ```