3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
11 * SUBROUTINE ZERRLS( PATH, NUNIT )
13 * .. Scalar Arguments ..
24 *> ZERRLS tests the error exits for the COMPLEX*16 least squares
25 *> driver routines (ZGELS, CGELSS, CGELSY, CGELSD).
33 *> PATH is CHARACTER*3
34 *> The LAPACK path name for the routines to be tested.
40 *> The unit number for output.
46 *> \author Univ. of Tennessee
47 *> \author Univ. of California Berkeley
48 *> \author Univ. of Colorado Denver
51 *> \date November 2015
53 *> \ingroup complex16_lin
55 * =====================================================================
56 SUBROUTINE ZERRLS( PATH, NUNIT )
58 * -- LAPACK test routine (version 3.6.0) --
59 * -- LAPACK is a software package provided by Univ. of Tennessee, --
60 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
63 * .. Scalar Arguments ..
68 * =====================================================================
72 PARAMETER ( NMAX = 2 )
77 DOUBLE PRECISION RCOND
81 DOUBLE PRECISION RW( NMAX ), S( NMAX )
82 COMPLEX*16 A( NMAX, NMAX ), B( NMAX, NMAX ), W( NMAX )
84 * .. External Functions ..
88 * .. External Subroutines ..
89 EXTERNAL ALAESM, CHKXER, ZGELS, ZGELSD, ZGELSS, ZGELSY
91 * .. Scalars in Common ..
97 COMMON / INFOC / INFOT, NOUT, OK, LERR
98 COMMON / SRNAMC / SRNAMT
100 * .. Executable Statements ..
104 A( 1, 1 ) = ( 1.0D+0, 0.0D+0 )
105 A( 1, 2 ) = ( 2.0D+0, 0.0D+0 )
106 A( 2, 2 ) = ( 3.0D+0, 0.0D+0 )
107 A( 2, 1 ) = ( 4.0D+0, 0.0D+0 )
109 WRITE( NOUT, FMT = * )
111 * Test error exits for the least squares driver routines.
113 IF( LSAMEN( 2, C2, 'LS' ) ) THEN
119 CALL ZGELS( '/', 0, 0, 0, A, 1, B, 1, W, 1, INFO )
120 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
122 CALL ZGELS( 'N', -1, 0, 0, A, 1, B, 1, W, 1, INFO )
123 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
125 CALL ZGELS( 'N', 0, -1, 0, A, 1, B, 1, W, 1, INFO )
126 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
128 CALL ZGELS( 'N', 0, 0, -1, A, 1, B, 1, W, 1, INFO )
129 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
131 CALL ZGELS( 'N', 2, 0, 0, A, 1, B, 2, W, 2, INFO )
132 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
134 CALL ZGELS( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
135 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
137 CALL ZGELS( 'N', 1, 1, 0, A, 1, B, 1, W, 1, INFO )
138 CALL CHKXER( 'ZGELS ', INFOT, NOUT, LERR, OK )
144 CALL ZGELSS( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
146 CALL CHKXER( 'ZGELSS', INFOT, NOUT, LERR, OK )
148 CALL ZGELSS( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
150 CALL CHKXER( 'ZGELSS', INFOT, NOUT, LERR, OK )
152 CALL ZGELSS( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 1, RW,
154 CALL CHKXER( 'ZGELSS', INFOT, NOUT, LERR, OK )
156 CALL ZGELSS( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 2, RW,
158 CALL CHKXER( 'ZGELSS', INFOT, NOUT, LERR, OK )
160 CALL ZGELSS( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 2, RW,
162 CALL CHKXER( 'ZGELSS', INFOT, NOUT, LERR, OK )
168 CALL ZGELSY( -1, 0, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
170 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
172 CALL ZGELSY( 0, -1, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
174 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
176 CALL ZGELSY( 0, 0, -1, A, 1, B, 1, IP, RCOND, IRNK, W, 10, RW,
178 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
180 CALL ZGELSY( 2, 0, 0, A, 1, B, 2, IP, RCOND, IRNK, W, 10, RW,
182 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
184 CALL ZGELSY( 2, 0, 0, A, 2, B, 1, IP, RCOND, IRNK, W, 10, RW,
186 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
188 CALL ZGELSY( 0, 3, 0, A, 1, B, 3, IP, RCOND, IRNK, W, 1, RW,
190 CALL CHKXER( 'ZGELSY', INFOT, NOUT, LERR, OK )
196 CALL ZGELSD( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10, RW,
198 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
200 CALL ZGELSD( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10, RW,
202 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
204 CALL ZGELSD( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 10, RW,
206 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
208 CALL ZGELSD( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 10, RW,
210 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
212 CALL ZGELSD( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 10, RW,
214 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
216 CALL ZGELSD( 2, 2, 1, A, 2, B, 2, S, RCOND, IRNK, W, 1, RW, IP,
218 CALL CHKXER( 'ZGELSD', INFOT, NOUT, LERR, OK )
221 * Print a summary line.
223 CALL ALAESM( PATH, OK, NOUT )