Go to the documentation of this file.
37 #ifndef TEMPLATE_LAPACK_ORGQR_HEADER
38 #define TEMPLATE_LAPACK_ORGQR_HEADER
129 integer a_dim1, a_offset, i__1, i__2, i__3;
131 integer i__, j, l, nbmin, iinfo;
137 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]
141 a_offset = 1 + a_dim1 * 1;
152 work[1] = (Treal) lwkopt;
153 lquery = *lwork == -1;
156 }
else if (*n < 0 || *n > *m) {
158 }
else if (*k < 0 || *k > *n) {
162 }
else if (*lwork <
maxMACRO(1,*n) && ! lquery) {
183 if (nb > 1 && nb < *k) {
202 nb = *lwork / ldwork;
211 if (nb >= nbmin && nb < *k && nx < *k) {
216 ki = (*k - nx - 1) / nb * nb;
218 i__1 = *k, i__2 = ki + nb;
224 for (j = kk + 1; j <= i__1; ++j) {
226 for (i__ = 1; i__ <= i__2; ++i__) {
251 for (i__ = ki + 1; i__1 < 0 ? i__ >= 1 : i__ <= 1; i__ += i__1) {
253 i__2 = nb, i__3 = *k - i__ + 1;
255 if (i__ + ib <= *n) {
262 lda, &tau[i__], &work[1], &ldwork);
267 i__3 = *n - i__ - ib + 1;
269 i__2, &i__3, &ib, &
a_ref(i__, i__), lda, &work[1], &
270 ldwork, &
a_ref(i__, i__ + ib), lda, &work[ib + 1], &
283 for (j = i__; j <= i__2; ++j) {
285 for (l = 1; l <= i__3; ++l) {
295 work[1] = (Treal) iws;
int ftnlen
Definition: template_blas_common.h:42
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:281
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:43
#define minMACRO(a, b)
Definition: template_blas_common.h:46
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:42
bool logical
Definition: template_blas_common.h:41
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:146
int integer
Definition: template_blas_common.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:42
#define maxMACRO(a, b)
Definition: template_blas_common.h:45
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:42