3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
11 * SUBROUTINE CERRQRT( PATH, NUNIT )
13 * .. Scalar Arguments ..
24 *> CERRQRT tests the error exits for the COMPLEX routines
25 *> that use the QRT decomposition of a general matrix.
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 2011
53 *> \ingroup complex_lin
55 * =====================================================================
56 SUBROUTINE CERRQRT( PATH, NUNIT )
59 * -- LAPACK test routine (version 3.4.0) --
60 * -- LAPACK is a software package provided by Univ. of Tennessee, --
61 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
64 * .. Scalar Arguments ..
69 * =====================================================================
73 PARAMETER ( NMAX = 2 )
79 COMPLEX A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
82 * .. External Subroutines ..
83 EXTERNAL ALAESM, CHKXER, CGEQRT2, CGEQRT3, CGEQRT,
86 * .. Scalars in Common ..
92 COMMON / INFOC / INFOT, NOUT, OK, LERR
93 COMMON / SRNAMC / SRNAMT
95 * .. Intrinsic Functions ..
96 INTRINSIC FLOAT, CMPLX
98 * .. Executable Statements ..
101 WRITE( NOUT, FMT = * )
103 * Set the variables to innocuous values.
107 A( I, J ) = 1.0 / CMPLX( FLOAT(I+J), 0.0 )
108 C( I, J ) = 1.0 / CMPLX( FLOAT(I+J), 0.0 )
109 T( I, J ) = 1.0 / CMPLX( FLOAT(I+J), 0.0 )
115 * Error exits for QRT factorization
121 CALL CGEQRT( -1, 0, 1, A, 1, T, 1, W, INFO )
122 CALL CHKXER( 'CGEQRT', INFOT, NOUT, LERR, OK )
124 CALL CGEQRT( 0, -1, 1, A, 1, T, 1, W, INFO )
125 CALL CHKXER( 'CGEQRT', INFOT, NOUT, LERR, OK )
127 CALL CGEQRT( 0, 0, 0, A, 1, T, 1, W, INFO )
128 CALL CHKXER( 'CGEQRT', INFOT, NOUT, LERR, OK )
130 CALL CGEQRT( 2, 1, 1, A, 1, T, 1, W, INFO )
131 CALL CHKXER( 'CGEQRT', INFOT, NOUT, LERR, OK )
133 CALL CGEQRT( 2, 2, 2, A, 2, T, 1, W, INFO )
134 CALL CHKXER( 'CGEQRT', INFOT, NOUT, LERR, OK )
140 CALL CGEQRT2( -1, 0, A, 1, T, 1, INFO )
141 CALL CHKXER( 'CGEQRT2', INFOT, NOUT, LERR, OK )
143 CALL CGEQRT2( 0, -1, A, 1, T, 1, INFO )
144 CALL CHKXER( 'CGEQRT2', INFOT, NOUT, LERR, OK )
146 CALL CGEQRT2( 2, 1, A, 1, T, 1, INFO )
147 CALL CHKXER( 'CGEQRT2', INFOT, NOUT, LERR, OK )
149 CALL CGEQRT2( 2, 2, A, 2, T, 1, INFO )
150 CALL CHKXER( 'CGEQRT2', INFOT, NOUT, LERR, OK )
156 CALL CGEQRT3( -1, 0, A, 1, T, 1, INFO )
157 CALL CHKXER( 'CGEQRT3', INFOT, NOUT, LERR, OK )
159 CALL CGEQRT3( 0, -1, A, 1, T, 1, INFO )
160 CALL CHKXER( 'CGEQRT3', INFOT, NOUT, LERR, OK )
162 CALL CGEQRT3( 2, 1, A, 1, T, 1, INFO )
163 CALL CHKXER( 'CGEQRT3', INFOT, NOUT, LERR, OK )
165 CALL CGEQRT3( 2, 2, A, 2, T, 1, INFO )
166 CALL CHKXER( 'CGEQRT3', INFOT, NOUT, LERR, OK )
172 CALL CGEMQRT( '/', 'N', 0, 0, 0, 1, A, 1, T, 1, C, 1, W, INFO )
173 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
175 CALL CGEMQRT( 'L', '/', 0, 0, 0, 1, A, 1, T, 1, C, 1, W, INFO )
176 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
178 CALL CGEMQRT( 'L', 'N', -1, 0, 0, 1, A, 1, T, 1, C, 1, W, INFO )
179 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
181 CALL CGEMQRT( 'L', 'N', 0, -1, 0, 1, A, 1, T, 1, C, 1, W, INFO )
182 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
184 CALL CGEMQRT( 'L', 'N', 0, 0, -1, 1, A, 1, T, 1, C, 1, W, INFO )
185 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
187 CALL CGEMQRT( 'R', 'N', 0, 0, -1, 1, A, 1, T, 1, C, 1, W, INFO )
188 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
190 CALL CGEMQRT( 'L', 'N', 0, 0, 0, 0, A, 1, T, 1, C, 1, W, INFO )
191 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
193 CALL CGEMQRT( 'R', 'N', 1, 2, 1, 1, A, 1, T, 1, C, 1, W, INFO )
194 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
196 CALL CGEMQRT( 'L', 'N', 2, 1, 1, 1, A, 1, T, 1, C, 1, W, INFO )
197 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
199 CALL CGEMQRT( 'R', 'N', 1, 1, 1, 1, A, 1, T, 0, C, 1, W, INFO )
200 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
202 CALL CGEMQRT( 'L', 'N', 1, 1, 1, 1, A, 1, T, 1, C, 0, W, INFO )
203 CALL CHKXER( 'CGEMQRT', INFOT, NOUT, LERR, OK )
205 * Print a summary line.
207 CALL ALAESM( PATH, OK, NOUT )