Calculates the Givens rotation matrix.

p | The value which can rotate to any number. |

q | The value which rotates to zero. |

return value | Rotation matrix zeroing out q. |

An entry in the offdiagonal of a matrix M can be eliminted by a rotation G: G*M will have a prescribed zero offdiagonal element. The parameter **p** is the corresponding diagonal element in the same column, and **q** is the offdiagonal in question.

```
M =
```*[1,2,3;4,5,6;7,8,9]*
col = *2*
row = *1*
G = eye(numRows(M));
G[col,row;col,row] = givens(M[col;col], M[row;col]);
G*M

```
M =
```*[1,2,3;4,5,6;7,8,9]*
col = *1*
row = *2*
G = eye(numCols(M));
G[row,col;row,col] = givens(M[row;row]', M[row;col]');
M*G'