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;
int template_lapack_orgqr(const integer *m, const integer *n, const integer *k, Treal *a, const integer *lda, const Treal *tau, Treal *work, const integer *lwork, integer *info)
Definition: template_lapack_orgqr.h:41
int integer
Definition: template_blas_common.h:38
integer template_lapack_ilaenv(const integer *ispec, const char *name__, const char *opts, const integer *n1, const integer *n2, const integer *n3, const integer *n4, ftnlen name_len, ftnlen opts_len)
Definition: template_lapack_common.cc:279
#define maxMACRO(a, b)
Definition: template_blas_common.h:43
#define minMACRO(a, b)
Definition: template_blas_common.h:44
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:144
int template_lapack_larfb(const char *side, const char *trans, const char *direct, const char *storev, const integer *m, const integer *n, const integer *k, const Treal *v, const integer *ldv, const Treal *t, const integer *ldt, Treal *c__, const integer *ldc, Treal *work, const integer *ldwork)
Definition: template_lapack_larfb.h:40
bool logical
Definition: template_blas_common.h:39
int ftnlen
Definition: template_blas_common.h:40
int template_lapack_org2r(const integer *m, const integer *n, const integer *k, Treal *a, const integer *lda, const Treal *tau, Treal *work, integer *info)
Definition: template_lapack_org2r.h:40
int template_lapack_larft(const char *direct, const char *storev, const integer *n, const integer *k, Treal *v, const integer *ldv, const Treal *tau, Treal *t, const integer *ldt)
Definition: template_lapack_larft.h:40