Skip to content

Commit 808c26e

Browse files
committed
testers for error exits with two-stage Aasen's
1 parent fd8e3da commit 808c26e

16 files changed

Lines changed: 284 additions & 26 deletions

SRC/chesv_aa_2stage.f

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,10 @@ SUBROUTINE CHESV_AA_2STAGE( UPLO, N, NRHS, A, LDA, TB, LTB,
249249
CALL CHETRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,
250250
$ IPIV2, WORK, -1, INFO )
251251
LWKOPT = INT( WORK(1) )
252-
IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
253-
INFO = -13
254-
END IF
255252
IF( LTB.LT.INT( TB(1) ) .AND. .NOT.TQUERY ) THEN
256253
INFO = -7
254+
ELSE IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
255+
INFO = -13
257256
END IF
258257
END IF
259258
*

SRC/dsysv_aa_2stage.f

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,10 @@ SUBROUTINE DSYSV_AA_2STAGE( UPLO, N, NRHS, A, LDA, TB, LTB,
249249
CALL DSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,
250250
$ IPIV2, WORK, -1, INFO )
251251
LWKOPT = INT( WORK(1) )
252-
IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
253-
INFO = -13
254-
END IF
255252
IF( LTB.LT.INT( TB(1) ) .AND. .NOT.TQUERY ) THEN
256253
INFO = -7
254+
ELSE IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
255+
INFO = -13
257256
END IF
258257
END IF
259258
*

SRC/ssysv_aa_2stage.f

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,10 @@ SUBROUTINE SSYSV_AA_2STAGE( UPLO, N, NRHS, A, LDA, TB, LTB,
249249
CALL SSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, -1, IPIV,
250250
$ IPIV2, WORK, -1, INFO )
251251
LWKOPT = INT( WORK(1) )
252-
IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
253-
INFO = -13
254-
END IF
255252
IF( LTB.LT.INT( TB(1) ) .AND. .NOT.TQUERY ) THEN
256253
INFO = -7
254+
ELSE IF( LWORK.LT.LWKOPT .AND. .NOT.WQUERY ) THEN
255+
INFO = -13
257256
END IF
258257
END IF
259258
*

TESTING/LIN/cchkaa.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ PROGRAM CCHKAA
725725
WRITE( NOUT, FMT = 9988 )PATH
726726
END IF
727727
*
728-
ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
728+
ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
729729
*
730730
* SA: symmetric indefinite matrices,
731731
* with partial (Aasen's) pivoting algorithm

TESTING/LIN/cchkhe_aa_2stage.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ SUBROUTINE CCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
244244
* Test path
245245
*
246246
PATH( 1: 1 ) = 'Complex precision'
247-
PATH( 2: 3 ) = 'HA'
247+
PATH( 2: 3 ) = 'H2'
248248
*
249249
* Path to generate matrices
250250
*

TESTING/LIN/cdrvhe_aa_2stage.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE CDRVHE_AA_2STAGE(
232232
* Test path
233233
*
234234
PATH( 1: 1 ) = 'Complex precision'
235-
PATH( 2: 3 ) = 'HA'
235+
PATH( 2: 3 ) = 'H2'
236236
*
237237
* Path to generate matrices
238238
*

TESTING/LIN/cerrhe.f

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ SUBROUTINE CERRHE( PATH, NUNIT )
9494
$ CHETRI_3, CHETRI_3X, CHETRI_ROOK, CHETRI2,
9595
$ CHETRI2X, CHETRS, CHETRS_3, CHETRS_ROOK,
9696
$ CHETRS_AA, CHKXER, CHPCON, CHPRFS, CHPTRF,
97+
$ CHETRF_AA_2STAGE, CHETRS_AA_2STAGE,
9798
$ CHPTRI, CHPTRS
9899
* ..
99100
* .. Scalars in Common ..
@@ -471,7 +472,7 @@ SUBROUTINE CERRHE( PATH, NUNIT )
471472
CALL CHECON_3( 'U', 1, A, 1, E, IP, -1.0E0, RCOND, W, INFO)
472473
CALL CHKXER( 'CHECON_3', INFOT, NOUT, LERR, OK )
473474
*
474-
ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
475+
ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
475476
*
476477
* Test error exits of the routines that use factorization
477478
* of a Hermitian indefinite matrix with Aasen's algorithm.
@@ -489,10 +490,10 @@ SUBROUTINE CERRHE( PATH, NUNIT )
489490
CALL CHETRF_AA( 'U', 2, A, 1, IP, W, 4, INFO )
490491
CALL CHKXER( 'CHETRF_AA', INFOT, NOUT, LERR, OK )
491492
INFOT = 7
492-
CALL CHETRF_AA( 'U', 0, A, 1, IP, W, 0, INFO )
493+
CALL CHETRF_AA( 'U', 2, A, 2, IP, W, 0, INFO )
493494
CALL CHKXER( 'CHETRF_AA', INFOT, NOUT, LERR, OK )
494495
INFOT = 7
495-
CALL CHETRF_AA( 'U', 0, A, 1, IP, W, -2, INFO )
496+
CALL CHETRF_AA( 'U', 2, A, 2, IP, W, -2, INFO )
496497
CALL CHKXER( 'CHETRF_AA', INFOT, NOUT, LERR, OK )
497498
*
498499
* CHETRS_AA
@@ -514,11 +515,67 @@ SUBROUTINE CERRHE( PATH, NUNIT )
514515
CALL CHETRS_AA( 'U', 2, 1, A, 2, IP, B, 1, W, 1, INFO )
515516
CALL CHKXER( 'CHETRS_AA', INFOT, NOUT, LERR, OK )
516517
INFOT = 10
517-
CALL CHETRS_AA( 'U', 0, 1, A, 1, IP, B, 1, W, 0, INFO )
518+
CALL CHETRS_AA( 'U', 2, 1, A, 2, IP, B, 2, W, 0, INFO )
518519
CALL CHKXER( 'CHETRS_AA', INFOT, NOUT, LERR, OK )
519520
INFOT = 10
520-
CALL CHETRS_AA( 'U', 0, 1, A, 1, IP, B, 1, W, -2, INFO )
521+
CALL CHETRS_AA( 'U', 2, 1, A, 2, IP, B, 2, W, -2, INFO )
521522
CALL CHKXER( 'CHETRS_AA', INFOT, NOUT, LERR, OK )
523+
ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
524+
*
525+
* Test error exits of the routines that use factorization
526+
* of a symmetric indefinite matrix with Aasen's algorithm.
527+
*
528+
* CHETRF_AA_2STAGE
529+
*
530+
SRNAMT = 'CHETRF_AA_2STAGE'
531+
INFOT = 1
532+
CALL CHETRF_AA_2STAGE( '/', 0, A, 1, A, 1, IP, IP, W, 1,
533+
$ INFO )
534+
CALL CHKXER( 'CHETRF_AA_2STAGE', INFOT, NOUT, LERR, OK )
535+
INFOT = 2
536+
CALL CHETRF_AA_2STAGE( 'U', -1, A, 1, A, 1, IP, IP, W, 1,
537+
$ INFO )
538+
CALL CHKXER( 'CHETRF_AA_2STAGE', INFOT, NOUT, LERR, OK )
539+
INFOT = 4
540+
CALL CHETRF_AA_2STAGE( 'U', 2, A, 1, A, 2, IP, IP, W, 1,
541+
$ INFO )
542+
CALL CHKXER( 'CHETRF_AA_2STAGE', INFOT, NOUT, LERR, OK )
543+
INFOT = 6
544+
CALL CHETRF_AA_2STAGE( 'U', 2, A, 2, A, 1, IP, IP, W, 1,
545+
$ INFO )
546+
CALL CHKXER( 'CHETRF_AA_2STAGE', INFOT, NOUT, LERR, OK )
547+
INFOT = 10
548+
CALL CHETRF_AA_2STAGE( 'U', 2, A, 2, A, 8, IP, IP, W, 0,
549+
$ INFO )
550+
CALL CHKXER( 'CHETRF_AA_2STAGE', INFOT, NOUT, LERR, OK )
551+
*
552+
* CHETRS_AA_2STAGE
553+
*
554+
SRNAMT = 'CHETRS_AA_2STAGE'
555+
INFOT = 1
556+
CALL CHETRS_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP,
557+
$ B, 1, INFO )
558+
CALL CHKXER( 'CHETRS_AA_2STAGE', INFOT, NOUT, LERR, OK )
559+
INFOT = 2
560+
CALL CHETRS_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP,
561+
$ B, 1, INFO )
562+
CALL CHKXER( 'CHETRS_AA_2STAGE', INFOT, NOUT, LERR, OK )
563+
INFOT = 3
564+
CALL CHETRS_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP,
565+
$ B, 1, INFO )
566+
CALL CHKXER( 'CHETRS_AA_2STAGE', INFOT, NOUT, LERR, OK )
567+
INFOT = 5
568+
CALL CHETRS_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP,
569+
$ B, 1, INFO )
570+
CALL CHKXER( 'CHETRS_AA_2STAGE', INFOT, NOUT, LERR, OK )
571+
INFOT = 7
572+
CALL CHETRS_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP,
573+
$ B, 1, INFO )
574+
CALL CHKXER( 'CHETRS_AA_2STAGE', INFOT, NOUT, LERR, OK )
575+
INFOT = 11
576+
CALL CHETRS_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP,
577+
$ B, 1, INFO )
578+
CALL CHKXER( 'CHETRS_AA_STAGE', INFOT, NOUT, LERR, OK )
522579
*
523580
* Test error exits of the routines that use factorization
524581
* of a Hermitian indefinite packed matrix with patrial

TESTING/LIN/cerrvx.f

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ SUBROUTINE CERRVX( PATH, NUNIT )
9494
$ CHPSV, CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX,
9595
$ CPPSV, CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX,
9696
$ CSYSV, CSYSV_AA, CSYSV_RK, CSYSV_ROOK,
97-
$ CSYSVX
97+
$ CSYSVX, CSYSV_AA_2STAGE
9898
* ..
9999
* .. Scalars in Common ..
100100
LOGICAL LERR, OK
@@ -716,6 +716,36 @@ SUBROUTINE CERRVX( PATH, NUNIT )
716716
INFOT = 8
717717
CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
718718
CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
719+
*
720+
ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
721+
*
722+
* CHESV_AASEN_2STAGE
723+
*
724+
SRNAMT = 'CHESV_AA_2STAGE'
725+
INFOT = 1
726+
CALL CHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
727+
$ W, 1, INFO )
728+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
729+
INFOT = 2
730+
CALL CHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
731+
$ W, 1, INFO )
732+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
733+
INFOT = 3
734+
CALL CHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
735+
$ W, 1, INFO )
736+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
737+
INFOT = 5
738+
CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
739+
$ W, 1, INFO )
740+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
741+
INFOT = 11
742+
CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 2, IP, IP, B, 1,
743+
$ W, 1, INFO )
744+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
745+
INFOT = 7
746+
CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
747+
$ W, 1, INFO )
748+
CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
719749
*
720750
ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
721751
*

TESTING/LIN/dchksy_aa_2stage.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ SUBROUTINE DCHKSY_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
246246
* Test path
247247
*
248248
PATH( 1: 1 ) = 'Double precision'
249-
PATH( 2: 3 ) = 'SA'
249+
PATH( 2: 3 ) = 'S2'
250250
*
251251
* Path to generate matrices
252252
*

TESTING/LIN/ddrvsy_aa_2stage.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE DDRVSY_AA_2STAGE(
232232
* Test path
233233
*
234234
PATH( 1: 1 ) = 'Double precision'
235-
PATH( 2: 3 ) = 'SY'
235+
PATH( 2: 3 ) = 'S2'
236236
*
237237
* Path to generate matrices
238238
*

0 commit comments

Comments
 (0)