Skip to content

Commit 1497336

Browse files
authored
Add tests for ?GELST (Reference-LAPACK PR739)
1 parent d0afbd8 commit 1497336

9 files changed

Lines changed: 1234 additions & 357 deletions

File tree

lapack-netlib/TESTING/LIN/alahd.f

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -608,17 +608,18 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
608608
ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN
609609
*
610610
* LS: Least Squares driver routines for
611-
* LS, LSD, LSS, LSX and LSY.
611+
* LS, LST, TSLS, LSD, LSS, LSX and LSY.
612612
*
613613
WRITE( IOUNIT, FMT = 9984 )PATH
614614
WRITE( IOUNIT, FMT = 9967 )
615-
WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1
615+
WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1, C1
616616
WRITE( IOUNIT, FMT = 9935 )1
617617
WRITE( IOUNIT, FMT = 9931 )2
618-
WRITE( IOUNIT, FMT = 9933 )3
619-
WRITE( IOUNIT, FMT = 9935 )4
620-
WRITE( IOUNIT, FMT = 9934 )5
621-
WRITE( IOUNIT, FMT = 9932 )6
618+
WRITE( IOUNIT, FMT = 9919 )
619+
WRITE( IOUNIT, FMT = 9933 )7
620+
WRITE( IOUNIT, FMT = 9935 )8
621+
WRITE( IOUNIT, FMT = 9934 )9
622+
WRITE( IOUNIT, FMT = 9932 )10
622623
WRITE( IOUNIT, FMT = 9920 )
623624
WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
624625
*
@@ -1048,10 +1049,11 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
10481049
$ 'check if X is in the row space of A or A'' ',
10491050
$ '(overdetermined case)' )
10501051
9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRZF):' )
1051-
9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6' )
1052-
9921 FORMAT( ' Test ratios:', / ' (1-2: ', A1, 'GELS, 3-6: ', A1,
1053-
$ 'GELSY, 7-10: ', A1, 'GELSS, 11-14: ', A1, 'GELSD, 15-16: ',
1054-
$ A1, 'GETSLS)')
1052+
9919 FORMAT( 3X, ' 3-4: same as 1-2', 3X, ' 5-6: same as 1-2' )
1053+
9920 FORMAT( 3X, ' 11-14: same as 7-10', 3X, ' 15-18: same as 7-10' )
1054+
9921 FORMAT( ' Test ratios:', / ' (1-2: ', A1, 'GELS, 3-4: ', A1,
1055+
$ 'GELST, 5-6: ', A1, 'GETSLS, 7-10: ', A1, 'GELSY, 11-14: ',
1056+
$ A1, 'GETSS, 15-18: ', A1, 'GELSD)' )
10551057
9928 FORMAT( 7X, 'where ALPHA = ( 1 + SQRT( 17 ) ) / 8' )
10561058
9927 FORMAT( 3X, I2, ': ABS( Largest element in L )', / 12X,
10571059
$ ' - ( 1 / ( 1 - ALPHA ) ) + THRESH' )

lapack-netlib/TESTING/LIN/cdrvls.f

Lines changed: 240 additions & 80 deletions
Large diffs are not rendered by default.

lapack-netlib/TESTING/LIN/cerrls.f

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*> \verbatim
2323
*>
2424
*> CERRLS tests the error exits for the COMPLEX least squares
25-
*> driver routines (CGELS, CGELSS, CGELSY, CGELSD).
25+
*> driver routines (CGELS, CGELST, CGETSLS, CGELSS, CGELSY, CGELSD).
2626
*> \endverbatim
2727
*
2828
* Arguments:
@@ -83,7 +83,8 @@ SUBROUTINE CERRLS( PATH, NUNIT )
8383
EXTERNAL LSAMEN
8484
* ..
8585
* .. External Subroutines ..
86-
EXTERNAL ALAESM, CGELS, CGELSD, CGELSS, CGELSY, CHKXER
86+
EXTERNAL ALAESM, CHKXER, CGELS, CGELSD, CGELSS, CGELST,
87+
$ CGELSY, CGETSLS
8788
* ..
8889
* .. Scalars in Common ..
8990
LOGICAL LERR, OK
@@ -130,10 +131,66 @@ SUBROUTINE CERRLS( PATH, NUNIT )
130131
INFOT = 8
131132
CALL CGELS( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
132133
CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
134+
INFOT = 8
135+
CALL CGELS( 'N', 0, 2, 0, A, 1, B, 1, W, 2, INFO )
136+
CALL CHKXER( 'CGELS', INFOT, NOUT, LERR, OK )
133137
INFOT = 10
134138
CALL CGELS( 'N', 1, 1, 0, A, 1, B, 1, W, 1, INFO )
135139
CALL CHKXER( 'CGELS ', INFOT, NOUT, LERR, OK )
136140
*
141+
* CGELST
142+
*
143+
SRNAMT = 'CGELST'
144+
INFOT = 1
145+
CALL CGELST( '/', 0, 0, 0, A, 1, B, 1, W, 1, INFO )
146+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
147+
INFOT = 2
148+
CALL CGELST( 'N', -1, 0, 0, A, 1, B, 1, W, 1, INFO )
149+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
150+
INFOT = 3
151+
CALL CGELST( 'N', 0, -1, 0, A, 1, B, 1, W, 1, INFO )
152+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
153+
INFOT = 4
154+
CALL CGELST( 'N', 0, 0, -1, A, 1, B, 1, W, 1, INFO )
155+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
156+
INFOT = 6
157+
CALL CGELST( 'N', 2, 0, 0, A, 1, B, 2, W, 2, INFO )
158+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
159+
INFOT = 8
160+
CALL CGELST( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
161+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
162+
INFOT = 8
163+
CALL CGELST( 'N', 0, 2, 0, A, 1, B, 1, W, 2, INFO )
164+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
165+
INFOT = 10
166+
CALL CGELST( 'N', 1, 1, 0, A, 1, B, 1, W, 1, INFO )
167+
CALL CHKXER( 'CGELST', INFOT, NOUT, LERR, OK )
168+
*
169+
* CGETSLS
170+
*
171+
SRNAMT = 'CGETSLS'
172+
INFOT = 1
173+
CALL CGETSLS( '/', 0, 0, 0, A, 1, B, 1, W, 1, INFO )
174+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
175+
INFOT = 2
176+
CALL CGETSLS( 'N', -1, 0, 0, A, 1, B, 1, W, 1, INFO )
177+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
178+
INFOT = 3
179+
CALL CGETSLS( 'N', 0, -1, 0, A, 1, B, 1, W, 1, INFO )
180+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
181+
INFOT = 4
182+
CALL CGETSLS( 'N', 0, 0, -1, A, 1, B, 1, W, 1, INFO )
183+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
184+
INFOT = 6
185+
CALL CGETSLS( 'N', 2, 0, 0, A, 1, B, 2, W, 2, INFO )
186+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
187+
INFOT = 8
188+
CALL CGETSLS( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
189+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
190+
INFOT = 8
191+
CALL CGETSLS( 'N', 0, 2, 0, A, 1, B, 1, W, 2, INFO )
192+
CALL CHKXER( 'CGETSLS', INFOT, NOUT, LERR, OK )
193+
*
137194
* CGELSS
138195
*
139196
SRNAMT = 'CGELSS'

0 commit comments

Comments
 (0)