35 #ifndef TEMPLATE_LAPACK_ORMQR_HEADER
36 #define TEMPLATE_LAPACK_ORMQR_HEADER
41 const integer *k, Treal *a,
const integer *lda,
const Treal *tau, Treal *
146 integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3[2], i__4,
153 integer nbmin, iinfo, i1, i2, i3;
154 integer ib, ic, jc, nb, mi, ni;
160 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]
161 #define c___ref(a_1,a_2) c__[(a_2)*c_dim1 + a_1]
165 a_offset = 1 + a_dim1 * 1;
169 c_offset = 1 + c_dim1 * 1;
180 lquery = *lwork == -1;
199 }
else if (*k < 0 || *k > nq) {
205 }
else if (*lwork <
maxMACRO(1,nw) && ! lquery) {
216 i__3[0] = 1, a__1[0] =
side;
217 i__3[1] = 1, a__1[1] = trans;
223 work[1] = (Treal) lwkopt;
236 if (*m == 0 || *n == 0 || *k == 0) {
243 if (nb > 1 && nb < *k) {
246 nb = *lwork / ldwork;
249 i__3[0] = 1, a__1[0] =
side;
250 i__3[1] = 1, a__1[1] = trans;
260 if (nb < nbmin || nb >= *k) {
265 c_offset], ldc, &work[1], &iinfo);
270 if ( ( left && ! notran ) || ( ! left && notran ) ) {
275 i1 = (*k - 1) / nb * nb + 1;
290 for (i__ = i1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) {
292 i__4 = nb, i__5 = *k - i__ + 1;
300 lda, &tau[i__], t, &c__65);
318 a_ref(i__, i__), lda, t, &c__65, &
c___ref(ic, jc), ldc, &
323 work[1] = (Treal) lwkopt;