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 chetd2_fla(
char *,
integer *,
complex *,
integer *,
real *,
real *,
complex *,
integer *), cher2k_(
char *,
char *,
integer *,
integer *,
complex *,
complex *,
integer *,
complex *,
integer *,
real *,
complex *,
integer *), clatrd_(
char *,
integer *,
integer *,
complex *,
integer *,
real *,
complex *,
complex *,
integer *), xerbla_(
char *,
integer *);
230 a_offset = 1 + a_dim1;
238 upper = lsame_(uplo,
"U");
239 lquery = *lwork == -1;
240 if (! upper && ! lsame_(uplo,
"L"))
248 else if (*lda < max(1,*n))
252 else if (*lwork < 1 && ! lquery)
259 nb = ilaenv_(&c__1,
"CHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
261 work[1].
r = (
real) lwkopt;
267 xerbla_(
"CHETRD", &i__1);
283 if (nb > 1 && nb < *n)
289 i__2 = ilaenv_(&c__3,
"CHETRD", uplo, n, &c_n1, &c_n1, & c_n1);
302 i__1 = *lwork / ldwork;
304 nbmin = ilaenv_(&c__2,
"CHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
324 kk = *n - (*n - nx + nb - 1) / nb * nb;
327 for (i__ = *n - nb + 1;
328 i__2 < 0 ? i__ >= i__1 : i__ <= i__1;
335 clatrd_(uplo, &i__3, &nb, &a[a_offset], lda, &e[1], &tau[1], & work[1], &ldwork);
341 cher2k_(uplo,
"No transpose", &i__3, &nb, &q__1, &a[i__ * a_dim1 + 1], lda, &work[1], &ldwork, &c_b23, &a[a_offset], lda);
349 i__4 = j - 1 + j * a_dim1;
354 i__5 = j + j * a_dim1;
355 d__[i__4] = a[i__5].
r;
361 chetd2_fla(uplo, &kk, &a[a_offset], lda, &d__[1], &e[1], &tau[1], &iinfo);
369 i__1 < 0 ? i__ >= i__2 : i__ <= i__2;
376 clatrd_(uplo, &i__3, &nb, &a[i__ + i__ * a_dim1], lda, &e[i__], & tau[i__], &work[1], &ldwork);
379 i__3 = *n - i__ - nb + 1;
382 cher2k_(uplo,
"No transpose", &i__3, &nb, &q__1, &a[i__ + nb + i__ * a_dim1], lda, &work[nb + 1], &ldwork, &c_b23, &a[ i__ + nb + (i__ + nb) * a_dim1], lda);
390 i__4 = j + 1 + j * a_dim1;
395 i__5 = j + j * a_dim1;
396 d__[i__4] = a[i__5].
r;
403 chetd2_fla(uplo, &i__1, &a[i__ + i__ * a_dim1], lda, &d__[i__], &e[i__], &tau[i__], &iinfo);
405 work[1].
r = (
real) lwkopt;
int integer
Definition: FLA_f2c.h:25
int logical
Definition: FLA_f2c.h:36
float real
Definition: FLA_f2c.h:30
int chetd2_fla(char *uplo, integer *n, complex *a, integer *lda, real *d__, real *e, complex *tau, integer *info)
Definition: chetd2.c:174
real r
Definition: FLA_f2c.h:32
real i
Definition: FLA_f2c.h:32