a positive integer input variable set to the number of rows of S.
a positive integer input variable set to the number of columns of S. n must not exceed m.
an array of length ls. on input s must contain the lower trapezoidal matrix S stored by columns. on output s contains the lower trapezoidal matrix produced as described above.
a positive integer input variable not less than (n*(2*m-n+1))/2.
an input array of length m which must contain the vector u.
an array of length n. on input v must contain the vector v. on output v(i) contains the information necessary to recover the Givens rotation gv(i) described above.
an output array of length m. w(i) contains information necessary to recover the Givens rotation gw(i) described above.
a logical output variable. sing is set true if any of the diagonal elements of the output s are zero. otherwise sing is set false.
Given an m by n lower trapezoidal matrix S, an m-vector u, and an n-vector v, the problem is to determine an orthogonal matrix Q such that
is again lower trapezoidal.
This subroutine determines Q as the product of 2*(n - 1) transformations
where 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 accumulated, rather the information to recover the gv, gw rotations is returned.