matSwp {lazy.mat} R Documentation

## Matrix Sweep Operator

### Description

Matrix Sweep Operator

### Usage

```matSwp(A, loc = c(1:nrow(A)), eps = 1e-08, nopermute = 0,
chkginv = 0, debug = 0, history = 0)
```

### Arguments

 `A` a matrix to be sweeped. `loc` vector consisting of the pivot locations. `eps` small value to check if the pivot is 0. `nopermute` =1 to avoid permuting rows/cols when inverting A. `chkginv` = 1 to check if the resulting g-inverse is genuin. `debug` = 1 to print intermediate result. `history` = 1 to return the permutation matrix D

### Details

By default, inv(A) will be calculated by permuting colums of A in order to avoid zero pivots as much as possible.
In this case, if P is the permutation matrix,
inv(A) = P' inv(A P)
If history=1 is given, a list of A=matSwp(A) and P=Pmatrix will be returned.

Can be used with a character matrix.

### Value

A matrix swept or a list of A matrix swept and permutation matrix.

### References

Goodnight, J.H. (1979) Tutorial on the SWEEP operator. The Amarican Statistician, 33, 3, 149-158.
Dempster,A.P. (1969) Elements of Continuous Multivariate Analysis. Addison- Wesley Publishing Co.,Inc.

### Examples

```M <- matrix(c(1,2,3,3,2,1,4,5,2),3)
Minv <- matSwp(M)
Minv-matSwp(M,1:3)
Minv-matSwp(M,c(3,1,2))
M-matSwp( matSwp(M,1), 1 )
matSwp(demomat(3,3),chkginv=1)
```

[Package lazy.mat version 0.1.3 Index]