LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ cerrrq()

subroutine cerrrq ( character*3  PATH,
integer  NUNIT 
)

CERRRQ

Purpose:
 CERRRQ tests the error exits for the COMPLEX routines
 that use the RQ decomposition of a general matrix.
Parameters
[in]PATH
          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.
[in]NUNIT
          NUNIT is INTEGER
          The unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 57 of file cerrrq.f.

57 *
58 * -- LAPACK test routine (version 3.7.0) --
59 * -- LAPACK is a software package provided by Univ. of Tennessee, --
60 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61 * December 2016
62 *
63 * .. Scalar Arguments ..
64  CHARACTER*3 path
65  INTEGER nunit
66 * ..
67 *
68 * =====================================================================
69 *
70 * .. Parameters ..
71  INTEGER nmax
72  parameter( nmax = 2 )
73 * ..
74 * .. Local Scalars ..
75  INTEGER i, info, j
76 * ..
77 * .. Local Arrays ..
78  COMPLEX a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
79  $ w( nmax ), x( nmax )
80 * ..
81 * .. External Subroutines ..
82  EXTERNAL alaesm, cgerq2, cgerqf, cgerqs, chkxer, cungr2,
83  $ cungrq, cunmr2, cunmrq
84 * ..
85 * .. Scalars in Common ..
86  LOGICAL lerr, ok
87  CHARACTER*32 srnamt
88  INTEGER infot, nout
89 * ..
90 * .. Common blocks ..
91  COMMON / infoc / infot, nout, ok, lerr
92  COMMON / srnamc / srnamt
93 * ..
94 * .. Intrinsic Functions ..
95  INTRINSIC cmplx, real
96 * ..
97 * .. Executable Statements ..
98 *
99  nout = nunit
100  WRITE( nout, fmt = * )
101 *
102 * Set the variables to innocuous values.
103 *
104  DO 20 j = 1, nmax
105  DO 10 i = 1, nmax
106  a( i, j ) = cmplx( 1. / REAL( I+J ), -1. / REAL( I+J ) )
107  af( i, j ) = cmplx( 1. / REAL( I+J ), -1. / REAL( I+J ) )
108  10 CONTINUE
109  b( j ) = 0.
110  w( j ) = 0.
111  x( j ) = 0.
112  20 CONTINUE
113  ok = .true.
114 *
115 * Error exits for RQ factorization
116 *
117 * CGERQF
118 *
119  srnamt = 'CGERQF'
120  infot = 1
121  CALL cgerqf( -1, 0, a, 1, b, w, 1, info )
122  CALL chkxer( 'CGERQF', infot, nout, lerr, ok )
123  infot = 2
124  CALL cgerqf( 0, -1, a, 1, b, w, 1, info )
125  CALL chkxer( 'CGERQF', infot, nout, lerr, ok )
126  infot = 4
127  CALL cgerqf( 2, 1, a, 1, b, w, 2, info )
128  CALL chkxer( 'CGERQF', infot, nout, lerr, ok )
129  infot = 7
130  CALL cgerqf( 2, 1, a, 2, b, w, 1, info )
131  CALL chkxer( 'CGERQF', infot, nout, lerr, ok )
132 *
133 * CGERQ2
134 *
135  srnamt = 'CGERQ2'
136  infot = 1
137  CALL cgerq2( -1, 0, a, 1, b, w, info )
138  CALL chkxer( 'CGERQ2', infot, nout, lerr, ok )
139  infot = 2
140  CALL cgerq2( 0, -1, a, 1, b, w, info )
141  CALL chkxer( 'CGERQ2', infot, nout, lerr, ok )
142  infot = 4
143  CALL cgerq2( 2, 1, a, 1, b, w, info )
144  CALL chkxer( 'CGERQ2', infot, nout, lerr, ok )
145 *
146 * CGERQS
147 *
148  srnamt = 'CGERQS'
149  infot = 1
150  CALL cgerqs( -1, 0, 0, a, 1, x, b, 1, w, 1, info )
151  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
152  infot = 2
153  CALL cgerqs( 0, -1, 0, a, 1, x, b, 1, w, 1, info )
154  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
155  infot = 2
156  CALL cgerqs( 2, 1, 0, a, 2, x, b, 1, w, 1, info )
157  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
158  infot = 3
159  CALL cgerqs( 0, 0, -1, a, 1, x, b, 1, w, 1, info )
160  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
161  infot = 5
162  CALL cgerqs( 2, 2, 0, a, 1, x, b, 2, w, 1, info )
163  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
164  infot = 8
165  CALL cgerqs( 2, 2, 0, a, 2, x, b, 1, w, 1, info )
166  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
167  infot = 10
168  CALL cgerqs( 1, 1, 2, a, 1, x, b, 1, w, 1, info )
169  CALL chkxer( 'CGERQS', infot, nout, lerr, ok )
170 *
171 * CUNGRQ
172 *
173  srnamt = 'CUNGRQ'
174  infot = 1
175  CALL cungrq( -1, 0, 0, a, 1, x, w, 1, info )
176  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
177  infot = 2
178  CALL cungrq( 0, -1, 0, a, 1, x, w, 1, info )
179  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
180  infot = 2
181  CALL cungrq( 2, 1, 0, a, 2, x, w, 2, info )
182  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
183  infot = 3
184  CALL cungrq( 0, 0, -1, a, 1, x, w, 1, info )
185  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
186  infot = 3
187  CALL cungrq( 1, 2, 2, a, 1, x, w, 1, info )
188  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
189  infot = 5
190  CALL cungrq( 2, 2, 0, a, 1, x, w, 2, info )
191  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
192  infot = 8
193  CALL cungrq( 2, 2, 0, a, 2, x, w, 1, info )
194  CALL chkxer( 'CUNGRQ', infot, nout, lerr, ok )
195 *
196 * CUNGR2
197 *
198  srnamt = 'CUNGR2'
199  infot = 1
200  CALL cungr2( -1, 0, 0, a, 1, x, w, info )
201  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
202  infot = 2
203  CALL cungr2( 0, -1, 0, a, 1, x, w, info )
204  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
205  infot = 2
206  CALL cungr2( 2, 1, 0, a, 2, x, w, info )
207  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
208  infot = 3
209  CALL cungr2( 0, 0, -1, a, 1, x, w, info )
210  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
211  infot = 3
212  CALL cungr2( 1, 2, 2, a, 2, x, w, info )
213  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
214  infot = 5
215  CALL cungr2( 2, 2, 0, a, 1, x, w, info )
216  CALL chkxer( 'CUNGR2', infot, nout, lerr, ok )
217 *
218 * CUNMRQ
219 *
220  srnamt = 'CUNMRQ'
221  infot = 1
222  CALL cunmrq( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
223  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
224  infot = 2
225  CALL cunmrq( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
226  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
227  infot = 3
228  CALL cunmrq( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
229  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
230  infot = 4
231  CALL cunmrq( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
232  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
233  infot = 5
234  CALL cunmrq( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
235  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
236  infot = 5
237  CALL cunmrq( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
238  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
239  infot = 5
240  CALL cunmrq( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
241  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
242  infot = 7
243  CALL cunmrq( 'L', 'N', 2, 1, 2, a, 1, x, af, 2, w, 1, info )
244  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
245  infot = 7
246  CALL cunmrq( 'R', 'N', 1, 2, 2, a, 1, x, af, 1, w, 1, info )
247  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
248  infot = 10
249  CALL cunmrq( 'L', 'N', 2, 1, 0, a, 1, x, af, 1, w, 1, info )
250  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
251  infot = 12
252  CALL cunmrq( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
253  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
254  infot = 12
255  CALL cunmrq( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
256  CALL chkxer( 'CUNMRQ', infot, nout, lerr, ok )
257 *
258 * CUNMR2
259 *
260  srnamt = 'CUNMR2'
261  infot = 1
262  CALL cunmr2( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
263  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
264  infot = 2
265  CALL cunmr2( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
266  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
267  infot = 3
268  CALL cunmr2( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
269  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
270  infot = 4
271  CALL cunmr2( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
272  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
273  infot = 5
274  CALL cunmr2( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
275  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
276  infot = 5
277  CALL cunmr2( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
278  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
279  infot = 5
280  CALL cunmr2( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
281  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
282  infot = 7
283  CALL cunmr2( 'L', 'N', 2, 1, 2, a, 1, x, af, 2, w, info )
284  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
285  infot = 7
286  CALL cunmr2( 'R', 'N', 1, 2, 2, a, 1, x, af, 1, w, info )
287  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
288  infot = 10
289  CALL cunmr2( 'L', 'N', 2, 1, 0, a, 1, x, af, 1, w, info )
290  CALL chkxer( 'CUNMR2', infot, nout, lerr, ok )
291 *
292 * Print a summary line.
293 *
294  CALL alaesm( path, ok, nout )
295 *
296  RETURN
297 *
298 * End of CERRRQ
299 *
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:65
subroutine cungrq(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
CUNGRQ
Definition: cungrq.f:130
subroutine cunmrq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMRQ
Definition: cunmrq.f:170
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3199
subroutine cgerqf(M, N, A, LDA, TAU, WORK, LWORK, INFO)
CGERQF
Definition: cgerqf.f:140
subroutine cungr2(M, N, K, A, LDA, TAU, WORK, INFO)
CUNGR2 generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (u...
Definition: cungr2.f:116
subroutine cgerqs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGERQS
Definition: cgerqs.f:124
subroutine cunmr2(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO)
CUNMR2 multiplies a general matrix by the unitary matrix from a RQ factorization determined by cgerqf...
Definition: cunmr2.f:161
subroutine cgerq2(M, N, A, LDA, TAU, WORK, INFO)
CGERQ2 computes the RQ factorization of a general rectangular matrix using an unblocked algorithm...
Definition: cgerq2.f:125
Here is the call graph for this function:
Here is the caller graph for this function: