Function r1mpyq

Given an m by n matrix A, this subroutine computes AQ where Q is the product of 2*(n-1) transformations

void r1mpyq(Real) (
  size_t m,
  size_t n,
  Real* a,
  size_t lda,
  Real* v,
  Real* w
);
gv(n-1)*...*gv(1)*gw(1)*...*gw(n-1)

and gv(i), gw(i) are Givens rotations in the (i,n) plane which eliminate elements in the i-th and n-th planes, respectively. Q itself is not given, rather the information to recover the gv, gw rotations is supplied.

Parameters

NameDescription
m a positive integer input variable set to the number of rows of A.
n a positive integer input variable set to the number of columns of A.
a an array of length m^2. On input a must contain the matrix A to be postmultiplied by the orthogonal matrix Q described above. On output AQ has replaced A. the first min(m,n) columns of Q contains the factored form. on output Q has been accumulated into a square matrix.
lda a positive integer input variable not less than m which specifies the leading dimension of the array a.
v an input array of length n. v(i) must contain the information necessary to recover the Givens rotation gv(i) described above.
v an input array of length n. v(i) must contain the information necessary to recover the Givens rotation gw(i) described above.