Skip to content

Commit b9b3c78

Browse files
committed
Add missing error exit checks for nep
* add tests of TREVC3 * add workspace test for [DS]HSEQR that was already implemented for [CZ]HSEQR
1 parent 50b17a2 commit b9b3c78

File tree

4 files changed

+176
-12
lines changed

4 files changed

+176
-12
lines changed

TESTING/EIG/cerrhs.f

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*> \verbatim
2323
*>
2424
*> CERRHS tests the error exits for CGEBAK, CGEBAL, CGEHRD, CUNGHR,
25-
*> CUNMHR, CHSEQR, CHSEIN, and CTREVC.
25+
*> CUNMHR, CHSEQR, CHSEIN, CTREVC, and CTREVC3.
2626
*> \endverbatim
2727
*
2828
* Arguments:
@@ -86,7 +86,7 @@ SUBROUTINE CERRHS( PATH, NUNIT )
8686
* ..
8787
* .. External Subroutines ..
8888
EXTERNAL CHKXER, CGEBAK, CGEBAL, CGEHRD, CHSEIN, CHSEQR,
89-
$ CUNGHR, CUNMHR, CTREVC
89+
$ CUNGHR, CUNMHR, CTREVC, CTREVC3
9090
* ..
9191
* .. Intrinsic Functions ..
9292
INTRINSIC REAL
@@ -398,6 +398,47 @@ SUBROUTINE CERRHS( PATH, NUNIT )
398398
$ RW, INFO )
399399
CALL CHKXER( 'CTREVC', INFOT, NOUT, LERR, OK )
400400
NT = NT + 7
401+
*
402+
* CTREVC3
403+
*
404+
SRNAMT = 'CTREVC3'
405+
INFOT = 1
406+
CALL CTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
407+
$ LW, RW, 1, INFO )
408+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
409+
INFOT = 2
410+
CALL CTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
411+
$ LW, RW, 1, INFO )
412+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
413+
INFOT = 4
414+
CALL CTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
415+
$ LW, RW, 1, INFO )
416+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
417+
INFOT = 6
418+
CALL CTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
419+
$ LW, RW, 2, INFO )
420+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
421+
INFOT = 8
422+
CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
423+
$ LW, RW, 2, INFO )
424+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
425+
INFOT = 10
426+
CALL CTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
427+
$ LW, RW, 2, INFO )
428+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
429+
INFOT = 11
430+
CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
431+
$ LW, RW, 2, INFO )
432+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
433+
INFOT = 14
434+
CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
435+
$ 2, RW, 2, INFO )
436+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
437+
INFOT = 16
438+
CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
439+
$ LW, RW, 1, INFO )
440+
CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK )
441+
NT = NT + 9
401442
END IF
402443
*
403444
* Print a summary line.

TESTING/EIG/derrhs.f

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
*>
2222
*> \verbatim
2323
*>
24-
*> DERRHS tests the error exits for DGEBAK, SGEBAL, SGEHRD, DORGHR,
25-
*> DORMHR, DHSEQR, SHSEIN, and DTREVC.
24+
*> DERRHS tests the error exits for DGEBAK, DGEBAL, DGEHRD, DORGHR,
25+
*> DORMHR, DHSEQR, DHSEIN, DTREVC, and DTREVC3.
2626
*> \endverbatim
2727
*
2828
* Arguments:
@@ -86,7 +86,7 @@ SUBROUTINE DERRHS( PATH, NUNIT )
8686
* ..
8787
* .. External Subroutines ..
8888
EXTERNAL CHKXER, DGEBAK, DGEBAL, DGEHRD, DHSEIN, DHSEQR,
89-
$ DORGHR, DORMHR, DTREVC
89+
$ DORGHR, DORMHR, DTREVC, DTREVC3
9090
* ..
9191
* .. Intrinsic Functions ..
9292
INTRINSIC DBLE
@@ -328,7 +328,11 @@ SUBROUTINE DERRHS( PATH, NUNIT )
328328
CALL DHSEQR( 'E', 'V', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1,
329329
$ INFO )
330330
CALL CHKXER( 'DHSEQR', INFOT, NOUT, LERR, OK )
331-
NT = NT + 9
331+
INFOT = 13
332+
CALL DHSEQR( 'E', 'N', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1,
333+
$ INFO )
334+
CALL CHKXER( 'DHSEQR', INFOT, NOUT, LERR, OK )
335+
NT = NT + 10
332336
*
333337
* DHSEIN
334338
*
@@ -399,6 +403,43 @@ SUBROUTINE DERRHS( PATH, NUNIT )
399403
$ INFO )
400404
CALL CHKXER( 'DTREVC', INFOT, NOUT, LERR, OK )
401405
NT = NT + 7
406+
*
407+
* DTREVC3
408+
*
409+
SRNAMT = 'DTREVC3'
410+
INFOT = 1
411+
CALL DTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
412+
$ LW, INFO )
413+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
414+
INFOT = 2
415+
CALL DTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
416+
$ LW, INFO )
417+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
418+
INFOT = 4
419+
CALL DTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
420+
$ LW, INFO )
421+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
422+
INFOT = 6
423+
CALL DTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
424+
$ LW, INFO )
425+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
426+
INFOT = 8
427+
CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
428+
$ LW, INFO )
429+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
430+
INFOT = 10
431+
CALL DTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
432+
$ LW, INFO )
433+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
434+
INFOT = 11
435+
CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
436+
$ LW, INFO )
437+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
438+
INFOT = 14
439+
CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
440+
$ 2, INFO )
441+
CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK )
442+
NT = NT + 8
402443
END IF
403444
*
404445
* Print a summary line.

TESTING/EIG/serrhs.f

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*> \verbatim
2323
*>
2424
*> SERRHS tests the error exits for SGEBAK, SGEBAL, SGEHRD, SORGHR,
25-
*> SORMHR, SHSEQR, SHSEIN, and STREVC.
25+
*> SORMHR, SHSEQR, SHSEIN, STREVC, and STREVC3.
2626
*> \endverbatim
2727
*
2828
* Arguments:
@@ -85,7 +85,7 @@ SUBROUTINE SERRHS( PATH, NUNIT )
8585
* ..
8686
* .. External Subroutines ..
8787
EXTERNAL CHKXER, SGEBAK, SGEBAL, SGEHRD, SHSEIN, SHSEQR,
88-
$ SORGHR, SORMHR, STREVC
88+
$ SORGHR, SORMHR, STREVC, STREVC3
8989
* ..
9090
* .. Intrinsic Functions ..
9191
INTRINSIC REAL
@@ -327,7 +327,11 @@ SUBROUTINE SERRHS( PATH, NUNIT )
327327
CALL SHSEQR( 'E', 'V', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1,
328328
$ INFO )
329329
CALL CHKXER( 'SHSEQR', INFOT, NOUT, LERR, OK )
330-
NT = NT + 9
330+
INFOT = 13
331+
CALL SHSEQR( 'E', 'N', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1,
332+
$ INFO )
333+
CALL CHKXER( 'SHSEQR', INFOT, NOUT, LERR, OK )
334+
NT = NT + 10
331335
*
332336
* SHSEIN
333337
*
@@ -398,6 +402,43 @@ SUBROUTINE SERRHS( PATH, NUNIT )
398402
$ INFO )
399403
CALL CHKXER( 'STREVC', INFOT, NOUT, LERR, OK )
400404
NT = NT + 7
405+
*
406+
* STREVC3
407+
*
408+
SRNAMT = 'STREVC3'
409+
INFOT = 1
410+
CALL STREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
411+
$ LW, INFO )
412+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
413+
INFOT = 2
414+
CALL STREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
415+
$ LW, INFO )
416+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
417+
INFOT = 4
418+
CALL STREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
419+
$ LW, INFO )
420+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
421+
INFOT = 6
422+
CALL STREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
423+
$ LW, INFO )
424+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
425+
INFOT = 8
426+
CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
427+
$ LW, INFO )
428+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
429+
INFOT = 10
430+
CALL STREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
431+
$ LW, INFO )
432+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
433+
INFOT = 11
434+
CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
435+
$ LW, INFO )
436+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
437+
INFOT = 14
438+
CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
439+
$ 2, INFO )
440+
CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK )
441+
NT = NT + 8
401442
END IF
402443
*
403444
* Print a summary line.

TESTING/EIG/zerrhs.f

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
*>
2222
*> \verbatim
2323
*>
24-
*> ZERRHS tests the error exits for ZGEBAK, CGEBAL, CGEHRD, ZUNGHR,
25-
*> ZUNMHR, ZHSEQR, CHSEIN, and ZTREVC.
24+
*> ZERRHS tests the error exits for ZGEBAK, ZGEBAL, ZGEHRD, ZUNGHR,
25+
*> ZUNMHR, ZHSEQR, ZHSEIN, ZTREVC, and ZTREVC3.
2626
*> \endverbatim
2727
*
2828
* Arguments:
@@ -86,7 +86,7 @@ SUBROUTINE ZERRHS( PATH, NUNIT )
8686
* ..
8787
* .. External Subroutines ..
8888
EXTERNAL CHKXER, ZGEBAK, ZGEBAL, ZGEHRD, ZHSEIN, ZHSEQR,
89-
$ ZTREVC, ZUNGHR, ZUNMHR
89+
$ ZUNGHR, ZUNMHR, ZTREVC, ZTREVC3
9090
* ..
9191
* .. Intrinsic Functions ..
9292
INTRINSIC DBLE
@@ -389,6 +389,47 @@ SUBROUTINE ZERRHS( PATH, NUNIT )
389389
$ INFO )
390390
CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK )
391391
NT = NT + 7
392+
*
393+
* ZTREVC3
394+
*
395+
SRNAMT = 'ZTREVC3'
396+
INFOT = 1
397+
CALL ZTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
398+
$ LW, RW, 1, INFO )
399+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
400+
INFOT = 2
401+
CALL ZTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W,
402+
$ LW, RW, 1, INFO )
403+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
404+
INFOT = 4
405+
CALL ZTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W,
406+
$ LW, RW, 1, INFO )
407+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
408+
INFOT = 6
409+
CALL ZTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W,
410+
$ LW, RW, 2, INFO )
411+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
412+
INFOT = 8
413+
CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
414+
$ LW, RW, 2, INFO )
415+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
416+
INFOT = 10
417+
CALL ZTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W,
418+
$ LW, RW, 2, INFO )
419+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
420+
INFOT = 11
421+
CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W,
422+
$ LW, RW, 2, INFO )
423+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
424+
INFOT = 14
425+
CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
426+
$ 2, RW, 2, INFO )
427+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
428+
INFOT = 16
429+
CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W,
430+
$ LW, RW, 1, INFO )
431+
CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK )
432+
NT = NT + 9
392433
END IF
393434
*
394435
* Print a summary line.

0 commit comments

Comments
 (0)