35 #ifndef TEMPLATE_LAPACK_ORGQR_HEADER
36 #define TEMPLATE_LAPACK_ORGQR_HEADER
127 integer a_dim1, a_offset, i__1, i__2, i__3;
129 integer i__, j, l, nbmin, iinfo;
135 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]
139 a_offset = 1 + a_dim1 * 1;
150 work[1] = (Treal) lwkopt;
151 lquery = *lwork == -1;
154 }
else if (*n < 0 || *n > *m) {
156 }
else if (*k < 0 || *k > *n) {
160 }
else if (*lwork <
maxMACRO(1,*n) && ! lquery) {
181 if (nb > 1 && nb < *k) {
200 nb = *lwork / ldwork;
209 if (nb >= nbmin && nb < *k && nx < *k) {
214 ki = (*k - nx - 1) / nb * nb;
216 i__1 = *k, i__2 = ki + nb;
222 for (j = kk + 1; j <= i__1; ++j) {
224 for (i__ = 1; i__ <= i__2; ++i__) {
249 for (i__ = ki + 1; i__1 < 0 ? i__ >= 1 : i__ <= 1; i__ += i__1) {
251 i__2 = nb, i__3 = *k - i__ + 1;
253 if (i__ + ib <= *n) {
260 lda, &tau[i__], &work[1], &ldwork);
265 i__3 = *n - i__ - ib + 1;
267 i__2, &i__3, &ib, &
a_ref(i__, i__), lda, &work[1], &
268 ldwork, &
a_ref(i__, i__ + ib), lda, &work[ib + 1], &
281 for (j = i__; j <= i__2; ++j) {
283 for (l = 1; l <= i__3; ++l) {
293 work[1] = (Treal) iws;