172 integer a_dim1, a_offset, c_dim1, c_offset, i__2, i__3;
178 integer i1, i2, nb, mi, ni, nq, nw;
180 extern logical lsame_(
char *,
char *);
184 int xerbla_(
char *,
integer *);
189 int zunmql_(
char *,
char *,
integer *,
integer *,
integer *,
doublecomplex *,
integer *,
doublecomplex *,
doublecomplex *,
integer *,
doublecomplex *,
integer *,
integer *),
zunmqr_fla(
char *,
char *,
integer *,
integer *,
integer *,
doublecomplex *,
integer *,
doublecomplex *,
doublecomplex *,
integer *,
doublecomplex *,
integer *,
integer *);
211 a_offset = 1 + a_dim1;
215 c_offset = 1 + c_dim1;
220 left = lsame_(side,
"L");
221 upper = lsame_(uplo,
"U");
222 lquery = *lwork == -1;
234 if (! left && ! lsame_(side,
"R"))
238 else if (! upper && ! lsame_(uplo,
"L"))
242 else if (! lsame_(trans,
"N") && ! lsame_(trans,
"C"))
254 else if (*lda < max(1,nq))
258 else if (*ldc < max(1,*m))
262 else if (*lwork < max(1,nw) && ! lquery)
274 nb = ilaenv_(&c__1,
"ZUNMQL", ch__1, &i__2, n, &i__3, &c_n1);
280 nb = ilaenv_(&c__1,
"ZUNMQL", ch__1, m, &i__2, &i__3, &c_n1);
289 nb = ilaenv_(&c__1,
"ZUNMQR", ch__1, &i__2, n, &i__3, &c_n1);
295 nb = ilaenv_(&c__1,
"ZUNMQR", ch__1, m, &i__2, &i__3, &c_n1);
298 lwkopt = max(1,nw) * nb;
305 xerbla_(
"ZUNMTR", &i__2);
313 if (*m == 0 || *n == 0 || nq == 1)
333 zunmql_(side, trans, &mi, &ni, &i__2, &a[(a_dim1 << 1) + 1], lda, & tau[1], &c__[c_offset], ldc, &work[1], lwork, &iinfo);
349 zunmqr_fla(side, trans, &mi, &ni, &i__2, &a[a_dim1 + 2], lda, &tau[1], & c__[i1 + i2 * c_dim1], ldc, &work[1], lwork, &iinfo);
double doublereal
Definition: FLA_f2c.h:31
int integer
Definition: FLA_f2c.h:25
int logical
Definition: FLA_f2c.h:36
doublereal i
Definition: FLA_f2c.h:33
doublereal r
Definition: FLA_f2c.h:33
int zunmqr_fla(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer *lwork, integer *info)
Definition: zunmqr.c:168