196 integer a_dim1, a_offset, i__1, i__2, i__3;
198 integer i__, j, nb, kk, nx, iws;
199 extern logical lsame_(
char *,
char *);
203 int ssytd2_fla(
char *,
integer *,
real *,
integer *,
real *,
real *,
real *,
integer *), ssyr2k_(
char *,
char * ,
integer *,
integer *,
real *,
real *,
integer *,
real *,
integer *,
real *,
real *,
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,
"SSYTRD", uplo, n, &c_n1, &c_n1, &c_n1);
263 work[1] = (
real) lwkopt;
268 xerbla_(
"SSYTRD", &i__1);
283 if (nb > 1 && nb < *n)
289 i__2 = ilaenv_(&c__3,
"SSYTRD", uplo, n, &c_n1, &c_n1, & c_n1);
302 i__1 = *lwork / ldwork;
304 nbmin = ilaenv_(&c__2,
"SSYTRD", 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 slatrd_(uplo, &i__3, &nb, &a[a_offset], lda, &e[1], &tau[1], & work[1], &ldwork);
339 ssyr2k_(uplo,
"No transpose", &i__3, &nb, &c_b22, &a[i__ * a_dim1 + 1], lda, &work[1], &ldwork, &c_b23, &a[a_offset], lda);
347 a[j - 1 + j * a_dim1] = e[j - 1];
348 d__[j] = a[j + j * a_dim1];
354 ssytd2_fla(uplo, &kk, &a[a_offset], lda, &d__[1], &e[1], &tau[1], &iinfo);
362 i__1 < 0 ? i__ >= i__2 : i__ <= i__2;
369 slatrd_(uplo, &i__3, &nb, &a[i__ + i__ * a_dim1], lda, &e[i__], & tau[i__], &work[1], &ldwork);
372 i__3 = *n - i__ - nb + 1;
373 ssyr2k_(uplo,
"No transpose", &i__3, &nb, &c_b22, &a[i__ + nb + i__ * a_dim1], lda, &work[nb + 1], &ldwork, &c_b23, &a[ i__ + nb + (i__ + nb) * a_dim1], lda);
381 a[j + 1 + j * a_dim1] = e[j];
382 d__[j] = a[j + j * a_dim1];
389 ssytd2_fla(uplo, &i__1, &a[i__ + i__ * a_dim1], lda, &d__[i__], &e[i__], &tau[i__], &iinfo);
391 work[1] = (
real) lwkopt;
int ssytd2_fla(char *uplo, integer *n, real *a, integer *lda, real *d__, real *e, real *tau, integer *info)
Definition: ssytd2.c:169
float real
Definition: FLA_f2c.h:30
int logical
Definition: FLA_f2c.h:36
int integer
Definition: FLA_f2c.h:25