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

◆ derrlq()

subroutine derrlq ( character*3  path,
integer  nunit 
)

DERRLQ

Purpose:
 DERRLQ tests the error exits for the DOUBLE PRECISION 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 derrlq.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 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76 $ W( NMAX ), X( NMAX )
77* ..
78* .. External Subroutines ..
79 EXTERNAL alaesm, chkxer, dgelq2, dgelqf, dorgl2,
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 dble
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.d0 / dble( i+j )
104 af( i, j ) = 1.d0 / dble( i+j )
105 10 CONTINUE
106 b( j ) = 0.d0
107 w( j ) = 0.d0
108 x( j ) = 0.d0
109 20 CONTINUE
110 ok = .true.
111*
112* Error exits for LQ factorization
113*
114* DGELQF
115*
116 srnamt = 'DGELQF'
117 infot = 1
118 CALL dgelqf( -1, 0, a, 1, b, w, 1, info )
119 CALL chkxer( 'DGELQF', infot, nout, lerr, ok )
120 infot = 2
121 CALL dgelqf( 0, -1, a, 1, b, w, 1, info )
122 CALL chkxer( 'DGELQF', infot, nout, lerr, ok )
123 infot = 4
124 CALL dgelqf( 2, 1, a, 1, b, w, 2, info )
125 CALL chkxer( 'DGELQF', infot, nout, lerr, ok )
126 infot = 7
127 CALL dgelqf( 2, 1, a, 2, b, w, 1, info )
128 CALL chkxer( 'DGELQF', infot, nout, lerr, ok )
129*
130* DGELQ2
131*
132 srnamt = 'DGELQ2'
133 infot = 1
134 CALL dgelq2( -1, 0, a, 1, b, w, info )
135 CALL chkxer( 'DGELQ2', infot, nout, lerr, ok )
136 infot = 2
137 CALL dgelq2( 0, -1, a, 1, b, w, info )
138 CALL chkxer( 'DGELQ2', infot, nout, lerr, ok )
139 infot = 4
140 CALL dgelq2( 2, 1, a, 1, b, w, info )
141 CALL chkxer( 'DGELQ2', infot, nout, lerr, ok )
142*
143* DORGLQ
144*
145 srnamt = 'DORGLQ'
146 infot = 1
147 CALL dorglq( -1, 0, 0, a, 1, x, w, 1, info )
148 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
149 infot = 2
150 CALL dorglq( 0, -1, 0, a, 1, x, w, 1, info )
151 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
152 infot = 2
153 CALL dorglq( 2, 1, 0, a, 2, x, w, 2, info )
154 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
155 infot = 3
156 CALL dorglq( 0, 0, -1, a, 1, x, w, 1, info )
157 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
158 infot = 3
159 CALL dorglq( 1, 1, 2, a, 1, x, w, 1, info )
160 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
161 infot = 5
162 CALL dorglq( 2, 2, 0, a, 1, x, w, 2, info )
163 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
164 infot = 8
165 CALL dorglq( 2, 2, 0, a, 2, x, w, 1, info )
166 CALL chkxer( 'DORGLQ', infot, nout, lerr, ok )
167*
168* DORGL2
169*
170 srnamt = 'DORGL2'
171 infot = 1
172 CALL dorgl2( -1, 0, 0, a, 1, x, w, info )
173 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
174 infot = 2
175 CALL dorgl2( 0, -1, 0, a, 1, x, w, info )
176 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
177 infot = 2
178 CALL dorgl2( 2, 1, 0, a, 2, x, w, info )
179 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
180 infot = 3
181 CALL dorgl2( 0, 0, -1, a, 1, x, w, info )
182 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
183 infot = 3
184 CALL dorgl2( 1, 1, 2, a, 1, x, w, info )
185 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
186 infot = 5
187 CALL dorgl2( 2, 2, 0, a, 1, x, w, info )
188 CALL chkxer( 'DORGL2', infot, nout, lerr, ok )
189*
190* DORMLQ
191*
192 srnamt = 'DORMLQ'
193 infot = 1
194 CALL dormlq( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
195 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
196 infot = 2
197 CALL dormlq( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
198 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
199 infot = 3
200 CALL dormlq( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
201 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
202 infot = 4
203 CALL dormlq( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
204 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
205 infot = 5
206 CALL dormlq( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
207 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
208 infot = 5
209 CALL dormlq( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
210 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
211 infot = 5
212 CALL dormlq( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
213 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
214 infot = 7
215 CALL dormlq( 'L', 'N', 2, 0, 2, a, 1, x, af, 2, w, 1, info )
216 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
217 infot = 7
218 CALL dormlq( 'R', 'N', 0, 2, 2, a, 1, x, af, 1, w, 1, info )
219 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
220 infot = 10
221 CALL dormlq( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
222 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
223 infot = 12
224 CALL dormlq( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
226 infot = 12
227 CALL dormlq( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
228 CALL chkxer( 'DORMLQ', infot, nout, lerr, ok )
229*
230* DORML2
231*
232 srnamt = 'DORML2'
233 infot = 1
234 CALL dorml2( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
235 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
236 infot = 2
237 CALL dorml2( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
238 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
239 infot = 3
240 CALL dorml2( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
241 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
242 infot = 4
243 CALL dorml2( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
244 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
245 infot = 5
246 CALL dorml2( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
247 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
248 infot = 5
249 CALL dorml2( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
250 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
251 infot = 5
252 CALL dorml2( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
253 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
254 infot = 7
255 CALL dorml2( 'L', 'N', 2, 1, 2, a, 1, x, af, 2, w, info )
256 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
257 infot = 7
258 CALL dorml2( 'R', 'N', 1, 2, 2, a, 1, x, af, 1, w, info )
259 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
260 infot = 10
261 CALL dorml2( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
262 CALL chkxer( 'DORML2', infot, nout, lerr, ok )
263*
264* Print a summary line.
265*
266 CALL alaesm( path, ok, nout )
267*
268 RETURN
269*
270* End of DERRLQ
271*
subroutine alaesm(path, ok, nout)
ALAESM
Definition alaesm.f:63
subroutine chkxer(srnamt, infot, nout, lerr, ok)
Definition cblat2.f:3224
subroutine dgelq2(m, n, a, lda, tau, work, info)
DGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm.
Definition dgelq2.f:129
subroutine dgelqf(m, n, a, lda, tau, work, lwork, info)
DGELQF
Definition dgelqf.f:143
subroutine dorgl2(m, n, k, a, lda, tau, work, info)
DORGL2
Definition dorgl2.f:113
subroutine dorglq(m, n, k, a, lda, tau, work, lwork, info)
DORGLQ
Definition dorglq.f:127
subroutine dorml2(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
DORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sge...
Definition dorml2.f:159
subroutine dormlq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
DORMLQ
Definition dormlq.f:167
Here is the call graph for this function:
Here is the caller graph for this function: