55
56
57
58
59
60
61 CHARACTER*3 PATH
62 INTEGER NUNIT
63
64
65
66
67
68 INTEGER NMAX
69 parameter( nmax = 2 )
70
71
72 INTEGER I, INFO, J
73
74
75 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76 $ W( NMAX ), X( NMAX )
77
78
81
82
83 LOGICAL LERR, OK
84 CHARACTER*32 SRNAMT
85 INTEGER INFOT, NOUT
86
87
88 COMMON / infoc / infot, nout, ok, lerr
89 COMMON / srnamc / srnamt
90
91
92 INTRINSIC cmplx, real
93
94
95
96 nout = nunit
97 WRITE( nout, fmt = * )
98
99
100
101 DO 20 j = 1, nmax
102 DO 10 i = 1, nmax
103 a( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
104 af( i, j ) = cmplx( 1. / real( 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
113
114
115
116 srnamt = 'CGELQF'
117 infot = 1
118 CALL cgelqf( -1, 0, a, 1, b, w, 1, info )
119 CALL chkxer(
'CGELQF', infot, nout, lerr, ok )
120 infot = 2
121 CALL cgelqf( 0, -1, a, 1, b, w, 1, info )
122 CALL chkxer(
'CGELQF', infot, nout, lerr, ok )
123 infot = 4
124 CALL cgelqf( 2, 1, a, 1, b, w, 2, info )
125 CALL chkxer(
'CGELQF', infot, nout, lerr, ok )
126 infot = 7
127 CALL cgelqf( 2, 1, a, 2, b, w, 1, info )
128 CALL chkxer(
'CGELQF', infot, nout, lerr, ok )
129
130
131
132 srnamt = 'CGELQ2'
133 infot = 1
134 CALL cgelq2( -1, 0, a, 1, b, w, info )
135 CALL chkxer(
'CGELQ2', infot, nout, lerr, ok )
136 infot = 2
137 CALL cgelq2( 0, -1, a, 1, b, w, info )
138 CALL chkxer(
'CGELQ2', infot, nout, lerr, ok )
139 infot = 4
140 CALL cgelq2( 2, 1, a, 1, b, w, info )
141 CALL chkxer(
'CGELQ2', infot, nout, lerr, ok )
142
143
144
145 srnamt = 'CUNGLQ'
146 infot = 1
147 CALL cunglq( -1, 0, 0, a, 1, x, w, 1, info )
148 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
149 infot = 2
150 CALL cunglq( 0, -1, 0, a, 1, x, w, 1, info )
151 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
152 infot = 2
153 CALL cunglq( 2, 1, 0, a, 2, x, w, 2, info )
154 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
155 infot = 3
156 CALL cunglq( 0, 0, -1, a, 1, x, w, 1, info )
157 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
158 infot = 3
159 CALL cunglq( 1, 1, 2, a, 1, x, w, 1, info )
160 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
161 infot = 5
162 CALL cunglq( 2, 2, 0, a, 1, x, w, 2, info )
163 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
164 infot = 8
165 CALL cunglq( 2, 2, 0, a, 2, x, w, 1, info )
166 CALL chkxer(
'CUNGLQ', infot, nout, lerr, ok )
167
168
169
170 srnamt = 'CUNGL2'
171 infot = 1
172 CALL cungl2( -1, 0, 0, a, 1, x, w, info )
173 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
174 infot = 2
175 CALL cungl2( 0, -1, 0, a, 1, x, w, info )
176 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
177 infot = 2
178 CALL cungl2( 2, 1, 0, a, 2, x, w, info )
179 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
180 infot = 3
181 CALL cungl2( 0, 0, -1, a, 1, x, w, info )
182 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
183 infot = 3
184 CALL cungl2( 1, 1, 2, a, 1, x, w, info )
185 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
186 infot = 5
187 CALL cungl2( 2, 2, 0, a, 1, x, w, info )
188 CALL chkxer(
'CUNGL2', infot, nout, lerr, ok )
189
190
191
192 srnamt = 'CUNMLQ'
193 infot = 1
194 CALL cunmlq(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
195 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
196 infot = 2
197 CALL cunmlq(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
198 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
199 infot = 3
200 CALL cunmlq(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
201 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
202 infot = 4
203 CALL cunmlq(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
204 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
205 infot = 5
206 CALL cunmlq(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
207 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
208 infot = 5
209 CALL cunmlq(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
210 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
211 infot = 5
212 CALL cunmlq(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
213 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
214 infot = 7
215 CALL cunmlq(
'L',
'N', 2, 0, 2, a, 1, x, af, 2, w, 1, info )
216 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
217 infot = 7
218 CALL cunmlq(
'R',
'N', 0, 2, 2, a, 1, x, af, 1, w, 1, info )
219 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
220 infot = 10
221 CALL cunmlq(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
222 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
223 infot = 12
224 CALL cunmlq(
'L',
'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
226 infot = 12
227 CALL cunmlq(
'R',
'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
228 CALL chkxer(
'CUNMLQ', infot, nout, lerr, ok )
229
230
231
232 srnamt = 'CUNML2'
233 infot = 1
234 CALL cunml2(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, info )
235 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
236 infot = 2
237 CALL cunml2(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, info )
238 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
239 infot = 3
240 CALL cunml2(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, info )
241 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
242 infot = 4
243 CALL cunml2(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, info )
244 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
245 infot = 5
246 CALL cunml2(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, info )
247 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
248 infot = 5
249 CALL cunml2(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, info )
250 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
251 infot = 5
252 CALL cunml2(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, info )
253 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
254 infot = 7
255 CALL cunml2(
'L',
'N', 2, 1, 2, a, 1, x, af, 2, w, info )
256 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
257 infot = 7
258 CALL cunml2(
'R',
'N', 1, 2, 2, a, 1, x, af, 1, w, info )
259 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
260 infot = 10
261 CALL cunml2(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, info )
262 CALL chkxer(
'CUNML2', infot, nout, lerr, ok )
263
264
265
266 CALL alaesm( path, ok, nout )
267
268 RETURN
269
270
271
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cgelq2(m, n, a, lda, tau, work, info)
CGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm.
subroutine cgelqf(m, n, a, lda, tau, work, lwork, info)
CGELQF
subroutine cungl2(m, n, k, a, lda, tau, work, info)
CUNGL2 generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (u...
subroutine cunglq(m, n, k, a, lda, tau, work, lwork, info)
CUNGLQ
subroutine cunml2(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
CUNML2 multiplies a general matrix by the unitary matrix from a LQ factorization determined by cgelqf...
subroutine cunmlq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
CUNMLQ