193{
194
197
202 extern
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 *);
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
236
241 {
243 }
244 else if (*n < 0)
245 {
247 }
248 else if (*
lda <
max(1,*n))
249 {
251 }
253 {
255 }
257 {
258
259 nb =
ilaenv_(&c__1,
"CHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
263 }
265 {
268 return 0;
269 }
271 {
272 return 0;
273 }
274
275 if (*n == 0)
276 {
279 return 0;
280 }
283 if (
nb > 1 &&
nb < *n)
284 {
285
286
287
289 i__2 =
ilaenv_(&c__3,
"CHETRD", uplo, n, &c_n1, &c_n1, & c_n1);
292 {
293
297 {
298
299
300
301
304 nbmin =
ilaenv_(&c__2,
"CHETRD", uplo, n, &c_n1, &c_n1, &c_n1);
306 {
308 }
309 }
310 }
311 else
312 {
314 }
315 }
316 else
317 {
319 }
321 {
322
323
327 for (
i__ = *n -
nb + 1;
330 {
331
332
333
336
337
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);
342
343
348 {
356
357 }
358
359 }
360
362 }
363 else
364 {
365
371 {
372
373
374
377
378
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);
383
384
389 {
397
398 }
399
400 }
401
404 }
407 return 0;
408
409}
int integer
Definition FLA_f2c.h:25
int logical
Definition FLA_f2c.h:36
float real
Definition FLA_f2c.h:30
int i
Definition bl1_axmyv2.c:145
int chetd2_fla(char *uplo, integer *n, complex *a, integer *lda, real *d__, real *e, complex *tau, integer *info)
Definition chetd2.c:174