194{
195
197
202 extern
203 int dsytd2_fla(
char *,
integer *,
doublereal *,
integer *,
doublereal *,
doublereal *,
doublereal *,
integer *),
dsyr2k_(
char *,
char *,
integer *,
integer *,
doublereal *,
doublereal *,
integer *,
doublereal *,
integer *,
doublereal *,
doublereal *,
integer *),
dlatrd_(
char *,
integer *,
integer *,
doublereal *,
integer *,
doublereal *,
doublereal *,
doublereal *,
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,
"DSYTRD", uplo, n, &c_n1, &c_n1, &c_n1);
262 }
264 {
267 return 0;
268 }
270 {
271 return 0;
272 }
273
274 if (*n == 0)
275 {
277 return 0;
278 }
281 if (
nb > 1 &&
nb < *n)
282 {
283
284
285
287 i__2 =
ilaenv_(&c__3,
"DSYTRD", uplo, n, &c_n1, &c_n1, & c_n1);
290 {
291
295 {
296
297
298
299
302 nbmin =
ilaenv_(&c__2,
"DSYTRD", uplo, n, &c_n1, &c_n1, &c_n1);
304 {
306 }
307 }
308 }
309 else
310 {
312 }
313 }
314 else
315 {
317 }
319 {
320
321
325 for (
i__ = *n -
nb + 1;
328 {
329
330
331
334
335
337 dsyr2k_(uplo,
"No transpose", &
i__3, &
nb, &c_b22, &
a[
i__ *
a_dim1 + 1],
lda, &
work[1], &
ldwork, &c_b23, &
a[
a_offset],
lda);
338
339
344 {
347
348 }
349
350 }
351
353 }
354 else
355 {
356
362 {
363
364
365
368
369
371 dsyr2k_(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);
372
373
378 {
381
382 }
383
384 }
385
388 }
390 return 0;
391
392}
double doublereal
Definition FLA_f2c.h:31
int integer
Definition FLA_f2c.h:25
int logical
Definition FLA_f2c.h:36
int i
Definition bl1_axmyv2.c:145
int dsytd2_fla(char *uplo, integer *n, doublereal *a, integer *lda, doublereal *d__, doublereal *e, doublereal *tau, integer *info)
Definition dsytd2.c:169