37 #ifndef TEMPLATE_LAPACK_ORMQR_HEADER 38 #define TEMPLATE_LAPACK_ORMQR_HEADER 43 const integer *k, Treal *a,
const integer *lda,
const Treal *tau, Treal *
148 integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3[2], i__4,
155 integer nbmin, iinfo, i1, i2, i3;
156 integer ib, ic, jc, nb, mi, ni;
162 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1] 163 #define c___ref(a_1,a_2) c__[(a_2)*c_dim1 + a_1] 167 a_offset = 1 + a_dim1 * 1;
171 c_offset = 1 + c_dim1 * 1;
182 lquery = *lwork == -1;
201 }
else if (*k < 0 || *k > nq) {
207 }
else if (*lwork <
maxMACRO(1,nw) && ! lquery) {
218 i__3[0] = 1, a__1[0] =
side;
219 i__3[1] = 1, a__1[1] = trans;
225 work[1] = (Treal) lwkopt;
238 if (*m == 0 || *n == 0 || *k == 0) {
245 if (nb > 1 && nb < *k) {
248 nb = *lwork / ldwork;
251 i__3[0] = 1, a__1[0] =
side;
252 i__3[1] = 1, a__1[1] = trans;
262 if (nb < nbmin || nb >= *k) {
267 c_offset], ldc, &work[1], &iinfo);
272 if ( (
left && ! notran ) || ( !
left && notran ) ) {
277 i1 = (*k - 1) / nb * nb + 1;
292 for (i__ = i1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) {
294 i__4 = nb, i__5 = *k - i__ + 1;
302 lda, &tau[i__], t, &c__65);
320 a_ref(i__, i__), lda, t, &c__65, &
c___ref(ic, jc), ldc, &
325 work[1] = (Treal) lwkopt;
int integer
Definition: template_blas_common.h:40
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
char * address
Definition: template_blas_common.h:43
#define maxMACRO(a, b)
Definition: template_blas_common.h:45
#define minMACRO(a, b)
Definition: template_blas_common.h:46
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:146
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
#define c___ref(a_1, a_2)
void template_blas_s_cat(char *lp, char *rpp[], ftnlen rnp[], ftnlen *np, ftnlen ll)
Definition: template_blas_common.cc:204
int template_lapack_ormqr(char *side, char *trans, const integer *m, const integer *n, const integer *k, Treal *a, const integer *lda, const Treal *tau, Treal *c__, const integer *ldc, Treal *work, const integer *lwork, integer *info)
Definition: template_lapack_ormqr.h:42
int template_lapack_orm2r(const char *side, const char *trans, const integer *m, const integer *n, const integer *k, Treal *a, const integer *lda, const Treal *tau, Treal *c__, const integer *ldc, Treal *work, integer *info)
Definition: template_lapack_orm2r.h:42
bool logical
Definition: template_blas_common.h:41
side
Definition: Matrix.h:75
int ftnlen
Definition: template_blas_common.h:42
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:46
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