LAPACK 3.11.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ serrrq()

subroutine serrrq ( character*3  PATH,
integer  NUNIT 
)

SERRRQ

Purpose:
 SERRRQ tests the error exits for the REAL 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.

Definition at line 54 of file serrrq.f.

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