195 integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
198 integer i__, j, nb, kk, nx, iws;
199 extern logical lsame_(
char *,
char *);
203 int zhetd2_fla(
char *,
integer *,
doublecomplex *,
integer *,
doublereal *,
doublereal *,
doublecomplex *,
integer *), zher2k_(
char *,
char *,
integer *,
integer *,
doublecomplex *,
doublecomplex *,
integer *,
doublecomplex *,
integer *,
doublereal *,
doublecomplex *,
integer *), xerbla_(
char *,
integer *);
232 a_offset = 1 + a_dim1;
240 upper = lsame_(uplo,
"U");
241 lquery = *lwork == -1;
242 if (! upper && ! lsame_(uplo,
"L"))
250 else if (*lda < max(1,*n))
254 else if (*lwork < 1 && ! lquery)
261 nb = ilaenv_(&c__1,
"ZHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
269 xerbla_(
"ZHETRD", &i__1);
285 if (nb > 1 && nb < *n)
291 i__2 = ilaenv_(&c__3,
"ZHETRD", uplo, n, &c_n1, &c_n1, & c_n1);
304 i__1 = *lwork / ldwork;
306 nbmin = ilaenv_(&c__2,
"ZHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
326 kk = *n - (*n - nx + nb - 1) / nb * nb;
329 for (i__ = *n - nb + 1;
330 i__2 < 0 ? i__ >= i__1 : i__ <= i__1;
337 zlatrd_(uplo, &i__3, &nb, &a[a_offset], lda, &e[1], &tau[1], & work[1], &ldwork);
343 zher2k_(uplo,
"No transpose", &i__3, &nb, &z__1, &a[i__ * a_dim1 + 1], lda, &work[1], &ldwork, &c_b23, &a[a_offset], lda);
351 i__4 = j - 1 + j * a_dim1;
356 i__5 = j + j * a_dim1;
357 d__[i__4] = a[i__5].
r;
363 zhetd2_fla(uplo, &kk, &a[a_offset], lda, &d__[1], &e[1], &tau[1], &iinfo);
371 i__1 < 0 ? i__ >= i__2 : i__ <= i__2;
378 zlatrd_(uplo, &i__3, &nb, &a[i__ + i__ * a_dim1], lda, &e[i__], & tau[i__], &work[1], &ldwork);
381 i__3 = *n - i__ - nb + 1;
384 zher2k_(uplo,
"No transpose", &i__3, &nb, &z__1, &a[i__ + nb + i__ * a_dim1], lda, &work[nb + 1], &ldwork, &c_b23, &a[ i__ + nb + (i__ + nb) * a_dim1], lda);
392 i__4 = j + 1 + j * a_dim1;
397 i__5 = j + j * a_dim1;
398 d__[i__4] = a[i__5].
r;
405 zhetd2_fla(uplo, &i__1, &a[i__ + i__ * a_dim1], lda, &d__[i__], &e[i__], &tau[i__], &iinfo);
doublereal r
Definition: FLA_f2c.h:33
double doublereal
Definition: FLA_f2c.h:31
doublereal i
Definition: FLA_f2c.h:33
int zhetd2_fla(char *uplo, integer *n, doublecomplex *a, integer *lda, doublereal *d__, doublereal *e, doublecomplex *tau, integer *info)
Definition: zhetd2.c:174
int logical
Definition: FLA_f2c.h:36
int integer
Definition: FLA_f2c.h:25