Skip to content

Commit f40d220

Browse files
authored
Merge pull request #675 from angsch/tests
Improve testing
2 parents 0eb7706 + d2a547a commit f40d220

File tree

15 files changed

+241
-43
lines changed

15 files changed

+241
-43
lines changed

TESTING/EIG/cerrbd.f

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
*>
2222
*> \verbatim
2323
*>
24-
*> CERRBD tests the error exits for CGEBRD, CUNGBR, CUNMBR, and CBDSQR.
24+
*> CERRBD tests the error exits for CGEBD2, CGEBRD, CUNGBR, CUNMBR,
25+
*> and CBDSQR.
2526
*> \endverbatim
2627
*
2728
* Arguments:
@@ -81,7 +82,8 @@ SUBROUTINE CERRBD( PATH, NUNIT )
8182
EXTERNAL LSAMEN
8283
* ..
8384
* .. External Subroutines ..
84-
EXTERNAL CBDSQR, CGEBRD, CHKXER, CUNGBR, CUNMBR
85+
EXTERNAL CHKXER, CBDSQR, CGEBD2, CGEBRD, CUNGBR,
86+
$ CUNMBR
8587
* ..
8688
* .. Scalars in Common ..
8789
LOGICAL LERR, OK
@@ -132,6 +134,20 @@ SUBROUTINE CERRBD( PATH, NUNIT )
132134
CALL CHKXER( 'CGEBRD', INFOT, NOUT, LERR, OK )
133135
NT = NT + 4
134136
*
137+
* CGEBD2
138+
*
139+
SRNAMT = 'CGEBD2'
140+
INFOT = 1
141+
CALL CGEBD2( -1, 0, A, 1, D, E, TQ, TP, W, INFO )
142+
CALL CHKXER( 'CGEBD2', INFOT, NOUT, LERR, OK )
143+
INFOT = 2
144+
CALL CGEBD2( 0, -1, A, 1, D, E, TQ, TP, W, INFO )
145+
CALL CHKXER( 'CGEBD2', INFOT, NOUT, LERR, OK )
146+
INFOT = 4
147+
CALL CGEBD2( 2, 1, A, 1, D, E, TQ, TP, W, INFO )
148+
CALL CHKXER( 'CGEBD2', INFOT, NOUT, LERR, OK )
149+
NT = NT + 3
150+
*
135151
* CUNGBR
136152
*
137153
SRNAMT = 'CUNGBR'

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/serrbd.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ SUBROUTINE SERRBD( PATH, NUNIT )
111111
*
112112
DO 20 J = 1, NMAX
113113
DO 10 I = 1, NMAX
114-
A( I, J ) = 1.D0 / REAL( I+J )
114+
A( I, J ) = 1. / REAL( I+J )
115115
10 CONTINUE
116116
20 CONTINUE
117117
OK = .TRUE.

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/zerrbd.f

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
*>
2222
*> \verbatim
2323
*>
24-
*> ZERRBD tests the error exits for ZGEBRD, ZUNGBR, ZUNMBR, and ZBDSQR.
24+
*> ZERRBD tests the error exits for ZGEBD2, ZGEBRD, ZUNGBR, ZUNMBR,
25+
*> and ZBDSQR.
2526
*> \endverbatim
2627
*
2728
* Arguments:
@@ -81,7 +82,8 @@ SUBROUTINE ZERRBD( PATH, NUNIT )
8182
EXTERNAL LSAMEN
8283
* ..
8384
* .. External Subroutines ..
84-
EXTERNAL CHKXER, ZBDSQR, ZGEBRD, ZUNGBR, ZUNMBR
85+
EXTERNAL CHKXER, ZBDSQR, ZGEBD2, ZGEBRD, ZUNGBR,
86+
$ ZUNMBR
8587
* ..
8688
* .. Scalars in Common ..
8789
LOGICAL LERR, OK
@@ -132,6 +134,20 @@ SUBROUTINE ZERRBD( PATH, NUNIT )
132134
CALL CHKXER( 'ZGEBRD', INFOT, NOUT, LERR, OK )
133135
NT = NT + 4
134136
*
137+
* ZGEBD2
138+
*
139+
SRNAMT = 'ZGEBD2'
140+
INFOT = 1
141+
CALL ZGEBD2( -1, 0, A, 1, D, E, TQ, TP, W, INFO )
142+
CALL CHKXER( 'ZGEBD2', INFOT, NOUT, LERR, OK )
143+
INFOT = 2
144+
CALL ZGEBD2( 0, -1, A, 1, D, E, TQ, TP, W, INFO )
145+
CALL CHKXER( 'ZGEBD2', INFOT, NOUT, LERR, OK )
146+
INFOT = 4
147+
CALL ZGEBD2( 2, 1, A, 1, D, E, TQ, TP, W, INFO )
148+
CALL CHKXER( 'ZGEBD2', INFOT, NOUT, LERR, OK )
149+
NT = NT + 3
150+
*
135151
* ZUNGBR
136152
*
137153
SRNAMT = 'ZUNGBR'

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.

TESTING/LIN/cerrrfp.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ SUBROUTINE CERRRFP( NUNIT )
8989
*
9090
NOUT = NUNIT
9191
OK = .TRUE.
92-
A( 1, 1 ) = CMPLX( 1.D0 , 1.D0 )
93-
B( 1, 1 ) = CMPLX( 1.D0 , 1.D0 )
94-
ALPHA = CMPLX( 1.D0 , 1.D0 )
95-
BETA = CMPLX( 1.D0 , 1.D0 )
92+
A( 1, 1 ) = CMPLX( 1.0 , 1.0 )
93+
B( 1, 1 ) = CMPLX( 1.0 , 1.0 )
94+
ALPHA = CMPLX( 1.0 , 1.0 )
95+
BETA = CMPLX( 1.0 , 1.0 )
9696
*
9797
SRNAMT = 'CPFTRF'
9898
INFOT = 1

0 commit comments

Comments
 (0)