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

◆ serrlq()

subroutine serrlq ( character*3  path,
integer  nunit 
)

SERRLQ

Purpose:
 SERRLQ tests the error exits for the REAL routines
 that use the LQ 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 serrlq.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, sgelq2, sgelqf, sorgl2,
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 LQ factorization
113*
114* SGELQF
115*
116 srnamt = 'SGELQF'
117 infot = 1
118 CALL sgelqf( -1, 0, a, 1, b, w, 1, info )
119 CALL chkxer( 'SGELQF', infot, nout, lerr, ok )
120 infot = 2
121 CALL sgelqf( 0, -1, a, 1, b, w, 1, info )
122 CALL chkxer( 'SGELQF', infot, nout, lerr, ok )
123 infot = 4
124 CALL sgelqf( 2, 1, a, 1, b, w, 2, info )
125 CALL chkxer( 'SGELQF', infot, nout, lerr, ok )
126 infot = 7
127 CALL sgelqf( 2, 1, a, 2, b, w, 1, info )
128 CALL chkxer( 'SGELQF', infot, nout, lerr, ok )
129*
130* SGELQ2
131*
132 srnamt = 'SGELQ2'
133 infot = 1
134 CALL sgelq2( -1, 0, a, 1, b, w, info )
135 CALL chkxer( 'SGELQ2', infot, nout, lerr, ok )
136 infot = 2
137 CALL sgelq2( 0, -1, a, 1, b, w, info )
138 CALL chkxer( 'SGELQ2', infot, nout, lerr, ok )
139 infot = 4
140 CALL sgelq2( 2, 1, a, 1, b, w, info )
141 CALL chkxer( 'SGELQ2', infot, nout, lerr, ok )
142*
143* SORGLQ
144*
145 srnamt = 'SORGLQ'
146 infot = 1
147 CALL sorglq( -1, 0, 0, a, 1, x, w, 1, info )
148 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
149 infot = 2
150 CALL sorglq( 0, -1, 0, a, 1, x, w, 1, info )
151 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
152 infot = 2
153 CALL sorglq( 2, 1, 0, a, 2, x, w, 2, info )
154 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
155 infot = 3
156 CALL sorglq( 0, 0, -1, a, 1, x, w, 1, info )
157 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
158 infot = 3
159 CALL sorglq( 1, 1, 2, a, 1, x, w, 1, info )
160 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
161 infot = 5
162 CALL sorglq( 2, 2, 0, a, 1, x, w, 2, info )
163 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
164 infot = 8
165 CALL sorglq( 2, 2, 0, a, 2, x, w, 1, info )
166 CALL chkxer( 'SORGLQ', infot, nout, lerr, ok )
167*
168* SORGL2
169*
170 srnamt = 'SORGL2'
171 infot = 1
172 CALL sorgl2( -1, 0, 0, a, 1, x, w, info )
173 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
174 infot = 2
175 CALL sorgl2( 0, -1, 0, a, 1, x, w, info )
176 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
177 infot = 2
178 CALL sorgl2( 2, 1, 0, a, 2, x, w, info )
179 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
180 infot = 3
181 CALL sorgl2( 0, 0, -1, a, 1, x, w, info )
182 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
183 infot = 3
184 CALL sorgl2( 1, 1, 2, a, 1, x, w, info )
185 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
186 infot = 5
187 CALL sorgl2( 2, 2, 0, a, 1, x, w, info )
188 CALL chkxer( 'SORGL2', infot, nout, lerr, ok )
189*
190* SORMLQ
191*
192 srnamt = 'SORMLQ'
193 infot = 1
194 CALL sormlq( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
195 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
196 infot = 2
197 CALL sormlq( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
198 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
199 infot = 3
200 CALL sormlq( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
201 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
202 infot = 4
203 CALL sormlq( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
204 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
205 infot = 5
206 CALL sormlq( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
207 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
208 infot = 5
209 CALL sormlq( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
210 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
211 infot = 5
212 CALL sormlq( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
213 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
214 infot = 7
215 CALL sormlq( 'L', 'N', 2, 0, 2, a, 1, x, af, 2, w, 1, info )
216 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
217 infot = 7
218 CALL sormlq( 'R', 'N', 0, 2, 2, a, 1, x, af, 1, w, 1, info )
219 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
220 infot = 10
221 CALL sormlq( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
222 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
223 infot = 12
224 CALL sormlq( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
226 infot = 12
227 CALL sormlq( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
228 CALL chkxer( 'SORMLQ', infot, nout, lerr, ok )
229*
230* SORML2
231*
232 srnamt = 'SORML2'
233 infot = 1
234 CALL sorml2( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
235 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
236 infot = 2
237 CALL sorml2( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
238 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
239 infot = 3
240 CALL sorml2( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
241 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
242 infot = 4
243 CALL sorml2( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
244 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
245 infot = 5
246 CALL sorml2( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
247 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
248 infot = 5
249 CALL sorml2( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
250 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
251 infot = 5
252 CALL sorml2( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
253 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
254 infot = 7
255 CALL sorml2( 'L', 'N', 2, 1, 2, a, 1, x, af, 2, w, info )
256 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
257 infot = 7
258 CALL sorml2( 'R', 'N', 1, 2, 2, a, 1, x, af, 1, w, info )
259 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
260 infot = 10
261 CALL sorml2( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
262 CALL chkxer( 'SORML2', infot, nout, lerr, ok )
263*
264* Print a summary line.
265*
266 CALL alaesm( path, ok, nout )
267*
268 RETURN
269*
270* End of SERRLQ
271*
subroutine alaesm(path, ok, nout)
ALAESM
Definition alaesm.f:63
subroutine chkxer(srnamt, infot, nout, lerr, ok)
Definition cblat2.f:3224
subroutine sgelq2(m, n, a, lda, tau, work, info)
SGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm.
Definition sgelq2.f:129
subroutine sgelqf(m, n, a, lda, tau, work, lwork, info)
SGELQF
Definition sgelqf.f:143
subroutine sorgl2(m, n, k, a, lda, tau, work, info)
SORGL2
Definition sorgl2.f:113
subroutine sorglq(m, n, k, a, lda, tau, work, lwork, info)
SORGLQ
Definition sorglq.f:127
subroutine sorml2(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
SORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sge...
Definition sorml2.f:159
subroutine sormlq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
SORMLQ
Definition sormlq.f:168
Here is the call graph for this function:
Here is the caller graph for this function: