3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
11 * SUBROUTINE DERRLS( PATH, NUNIT )
13 * .. Scalar Arguments ..
24 *> DERRLS tests the error exits for the DOUBLE PRECISION least squares
25 *> driver routines (DGELS, SGELSS, SGELSY, SGELSD).
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 double_lin
55 * =====================================================================
56 SUBROUTINE DERRLS( 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 A( NMAX, NMAX ), B( NMAX, NMAX ), S( NMAX ),
84 * .. External Functions ..
88 * .. External Subroutines ..
89 EXTERNAL ALAESM, CHKXER, DGELS, DGELSD, DGELSS, DGELSY
91 * .. Scalars in Common ..
97 COMMON / INFOC / INFOT, NOUT, OK, LERR
98 COMMON / SRNAMC / SRNAMT
100 * .. Executable Statements ..
103 WRITE( NOUT, FMT = * )
111 IF( LSAMEN( 2, C2, 'LS' ) ) THEN
113 * Test error exits for the least squares driver routines.
119 CALL DGELS( '/', 0, 0, 0, A, 1, B, 1, W, 1, INFO )
120 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
122 CALL DGELS( 'N', -1, 0, 0, A, 1, B, 1, W, 1, INFO )
123 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
125 CALL DGELS( 'N', 0, -1, 0, A, 1, B, 1, W, 1, INFO )
126 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
128 CALL DGELS( 'N', 0, 0, -1, A, 1, B, 1, W, 1, INFO )
129 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
131 CALL DGELS( 'N', 2, 0, 0, A, 1, B, 2, W, 2, INFO )
132 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
134 CALL DGELS( 'N', 2, 0, 0, A, 2, B, 1, W, 2, INFO )
135 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
137 CALL DGELS( 'N', 1, 1, 0, A, 1, B, 1, W, 1, INFO )
138 CALL CHKXER( 'DGELS ', INFOT, NOUT, LERR, OK )
144 CALL DGELSS( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, INFO )
145 CALL CHKXER( 'DGELSS', INFOT, NOUT, LERR, OK )
147 CALL DGELSS( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 1, INFO )
148 CALL CHKXER( 'DGELSS', INFOT, NOUT, LERR, OK )
150 CALL DGELSS( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 1, INFO )
151 CALL CHKXER( 'DGELSS', INFOT, NOUT, LERR, OK )
153 CALL DGELSS( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 2, INFO )
154 CALL CHKXER( 'DGELSS', INFOT, NOUT, LERR, OK )
156 CALL DGELSS( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 2, INFO )
157 CALL CHKXER( 'DGELSS', INFOT, NOUT, LERR, OK )
163 CALL DGELSY( -1, 0, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10,
165 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
167 CALL DGELSY( 0, -1, 0, A, 1, B, 1, IP, RCOND, IRNK, W, 10,
169 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
171 CALL DGELSY( 0, 0, -1, A, 1, B, 1, IP, RCOND, IRNK, W, 10,
173 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
175 CALL DGELSY( 2, 0, 0, A, 1, B, 2, IP, RCOND, IRNK, W, 10,
177 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
179 CALL DGELSY( 2, 0, 0, A, 2, B, 1, IP, RCOND, IRNK, W, 10,
181 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
183 CALL DGELSY( 2, 2, 1, A, 2, B, 2, IP, RCOND, IRNK, W, 1, INFO )
184 CALL CHKXER( 'DGELSY', INFOT, NOUT, LERR, OK )
190 CALL DGELSD( -1, 0, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10, IP,
192 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
194 CALL DGELSD( 0, -1, 0, A, 1, B, 1, S, RCOND, IRNK, W, 10, IP,
196 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
198 CALL DGELSD( 0, 0, -1, A, 1, B, 1, S, RCOND, IRNK, W, 10, IP,
200 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
202 CALL DGELSD( 2, 0, 0, A, 1, B, 2, S, RCOND, IRNK, W, 10, IP,
204 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
206 CALL DGELSD( 2, 0, 0, A, 2, B, 1, S, RCOND, IRNK, W, 10, IP,
208 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
210 CALL DGELSD( 2, 2, 1, A, 2, B, 2, S, RCOND, IRNK, W, 1, IP,
212 CALL CHKXER( 'DGELSD', INFOT, NOUT, LERR, OK )
215 * Print a summary line.
217 CALL ALAESM( PATH, OK, NOUT )