|
263 | 263 | *> INFO is INTEGER |
264 | 264 | *> = 0: successful exit |
265 | 265 | *> < 0: if INFO = -i, the i-th argument had an illegal value |
266 | | -*> <= N: if INFO = i, then i eigenvectors failed to converge. |
267 | | -*> Their indices are stored in IFAIL. |
268 | | -*> > N: DPBSTF returned an error code; i.e., |
269 | | -*> if INFO = N + i, for 1 <= i <= N, then the leading |
270 | | -*> principal minor of order i of B is not positive. |
271 | | -*> The factorization of B could not be completed and |
272 | | -*> no eigenvalues or eigenvectors were computed. |
| 266 | +*> <= N: if INFO = i, then i eigenvectors failed to converge |
| 267 | +*> in DSTEIN; their indices are stored in IFAIL. |
| 268 | +*> N+1..2N: if INFO = N + i, for 1 <= i <= N, then DPBSTF |
| 269 | +*> returned an error code; the leading principal minor |
| 270 | +*> of order i of B is not positive. No eigenvalues or |
| 271 | +*> eigenvectors were computed. |
| 272 | +*> > 2N: if INFO = 2*N + i, then DSTEBZ returned |
| 273 | +*> INFO = i; see DSTEBZ for details. |
273 | 274 | *> \endverbatim |
274 | 275 | * |
275 | 276 | * Authors: |
@@ -462,12 +463,19 @@ SUBROUTINE DSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, |
462 | 463 | CALL DSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, |
463 | 464 | $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, |
464 | 465 | $ IWORK( 1 ), IWORK( INDISP ), WORK( INDWRK ), |
465 | | - $ IWORK( INDIWO ), INFO ) |
| 466 | + $ IWORK( INDIWO ), IINFO ) |
| 467 | + IF( IINFO.NE.0 ) THEN |
| 468 | + INFO = 2*N + IINFO |
| 469 | + IF( IINFO.NE.1 ) |
| 470 | + $ GO TO 30 |
| 471 | + END IF |
466 | 472 | * |
467 | 473 | IF( WANTZ ) THEN |
468 | 474 | CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, |
469 | 475 | $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, |
470 | | - $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) |
| 476 | + $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, IINFO ) |
| 477 | + IF( IINFO.NE.0 .AND. INFO.EQ.0 ) |
| 478 | + $ INFO = IINFO |
471 | 479 | * |
472 | 480 | * Apply transformation matrix used in reduction to tridiagonal |
473 | 481 | * form to eigenvectors returned by DSTEIN. |
|
0 commit comments