177 integer a_dim1, a_offset, i__1, i__2, i__3;
186 extern logical lsame_(
char *,
char *);
193 int zaxpy_(
integer *,
doublecomplex *,
doublecomplex *,
integer *,
doublecomplex *,
integer *), xerbla_(
char *,
integer *), zlarfg_(
integer *,
doublecomplex *,
doublecomplex *,
integer *,
doublecomplex *);
217 a_offset = 1 + a_dim1;
224 upper = lsame_(uplo,
"U");
225 if (! upper && ! lsame_(uplo,
"L"))
233 else if (*lda < max(1,*n))
240 xerbla_(
"ZHETD2", &i__1);
251 i__1 = *n + *n * a_dim1;
252 i__2 = *n + *n * a_dim1;
262 i__1 = i__ + (i__ + 1) * a_dim1;
265 zlarfg_(&i__, &alpha, &a[(i__ + 1) * a_dim1 + 1], &c__1, &taui);
268 if (taui.
r != 0. || taui.
i != 0.)
271 i__1 = i__ + (i__ + 1) * a_dim1;
275 zhemv_(uplo, &i__, &taui, &a[a_offset], lda, &a[(i__ + 1) * a_dim1 + 1], &c__1, &c_b2, &tau[1], &c__1);
279 z__2.
r = z__3.
r * taui.
r - z__3.
i * taui.
i;
280 z__2.
i = z__3.
r * taui.
i + z__3.
i * taui.
r;
281 zdotc_f2c_(&z__4, &i__, &tau[1], &c__1, &a[(i__ + 1) * a_dim1 + 1] , &c__1);
282 z__1.
r = z__2.
r * z__4.
r - z__2.
i * z__4.
i;
283 z__1.
i = z__2.
r * z__4.
i + z__2.
i * z__4.
r;
286 zaxpy_(&i__, &alpha, &a[(i__ + 1) * a_dim1 + 1], &c__1, &tau[ 1], &c__1);
291 zher2_(uplo, &i__, &z__1, &a[(i__ + 1) * a_dim1 + 1], &c__1, & tau[1], &c__1, &a[a_offset], lda);
295 i__1 = i__ + i__ * a_dim1;
296 i__2 = i__ + i__ * a_dim1;
301 i__1 = i__ + (i__ + 1) * a_dim1;
306 i__2 = i__ + 1 + (i__ + 1) * a_dim1;
307 d__[i__1] = a[i__2].
r;
309 tau[i__1].
r = taui.
r;
310 tau[i__1].
i = taui.
i;
331 i__2 = i__ + 1 + i__ * a_dim1;
337 zlarfg_(&i__2, &alpha, &a[min(i__3,*n) + i__ * a_dim1], &c__1, & taui);
340 if (taui.
r != 0. || taui.
i != 0.)
343 i__2 = i__ + 1 + i__ * a_dim1;
348 zhemv_(uplo, &i__2, &taui, &a[i__ + 1 + (i__ + 1) * a_dim1], lda, &a[i__ + 1 + i__ * a_dim1], &c__1, &c_b2, &tau[ i__], &c__1);
352 z__2.
r = z__3.
r * taui.
r - z__3.
i * taui.
i;
353 z__2.
i = z__3.
r * taui.
i + z__3.
i * taui.
r;
355 zdotc_f2c_(&z__4, &i__2, &tau[i__], &c__1, &a[i__ + 1 + i__ * a_dim1], &c__1);
356 z__1.
r = z__2.
r * z__4.
r - z__2.
i * z__4.
i;
357 z__1.
i = z__2.
r * z__4.
i + z__2.
i * z__4.
r;
361 zaxpy_(&i__2, &alpha, &a[i__ + 1 + i__ * a_dim1], &c__1, &tau[ i__], &c__1);
367 zher2_(uplo, &i__2, &z__1, &a[i__ + 1 + i__ * a_dim1], &c__1, &tau[i__], &c__1, &a[i__ + 1 + (i__ + 1) * a_dim1], lda);
371 i__2 = i__ + 1 + (i__ + 1) * a_dim1;
372 i__3 = i__ + 1 + (i__ + 1) * a_dim1;
377 i__2 = i__ + 1 + i__ * a_dim1;
382 i__3 = i__ + i__ * a_dim1;
383 d__[i__2] = a[i__3].
r;
385 tau[i__2].
r = taui.
r;
386 tau[i__2].
i = taui.
i;
390 i__2 = *n + *n * a_dim1;
391 d__[i__1] = a[i__2].
r;
doublereal r
Definition: FLA_f2c.h:33
double doublereal
Definition: FLA_f2c.h:31
doublereal i
Definition: FLA_f2c.h:33
int logical
Definition: FLA_f2c.h:36
int integer
Definition: FLA_f2c.h:25