149{
150
151 integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2;
152
153 integer i__, i1, i2, i3, ic, jc, mi, ni, nq;
156 extern
158 extern logical lsame_(
char *,
char *);
159 extern
160 int xerbla_(
char *,
integer *);
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184 a_dim1 = *lda;
185 a_offset = 1 + a_dim1;
186 a -= a_offset;
187 --tau;
188 c_dim1 = *ldc;
189 c_offset = 1 + c_dim1;
190 c__ -= c_offset;
191 --work;
192
193 *info = 0;
194 left = lsame_(side, "L");
195 notran = lsame_(trans, "N");
196
197 if (left)
198 {
199 nq = *m;
200 }
201 else
202 {
203 nq = *n;
204 }
205 if (! left && ! lsame_(side, "R"))
206 {
207 *info = -1;
208 }
209 else if (! notran && ! lsame_(trans, "T"))
210 {
211 *info = -2;
212 }
213 else if (*m < 0)
214 {
215 *info = -3;
216 }
217 else if (*n < 0)
218 {
219 *info = -4;
220 }
221 else if (*k < 0 || *k > nq)
222 {
223 *info = -5;
224 }
225 else if (*lda < max(1,*k))
226 {
227 *info = -7;
228 }
229 else if (*ldc < max(1,*m))
230 {
231 *info = -10;
232 }
233 if (*info != 0)
234 {
235 i__1 = -(*info);
236 xerbla_("DORML2", &i__1);
237 return 0;
238 }
239
240 if (*m == 0 || *n == 0 || *k == 0)
241 {
242 return 0;
243 }
244 if (left && notran || ! left && ! notran)
245 {
246 i1 = 1;
247 i2 = *k;
248 i3 = 1;
249 }
250 else
251 {
252 i1 = *k;
253 i2 = 1;
254 i3 = -1;
255 }
256 if (left)
257 {
258 ni = *n;
259 jc = 1;
260 }
261 else
262 {
263 mi = *m;
264 ic = 1;
265 }
266 i__1 = i2;
267 i__2 = i3;
268 for (i__ = i1;
269 i__2 < 0 ? i__ >= i__1 : i__ <= i__1;
270 i__ += i__2)
271 {
272 if (left)
273 {
274
275 mi = *m - i__ + 1;
276 ic = i__;
277 }
278 else
279 {
280
281 ni = *n - i__ + 1;
282 jc = i__;
283 }
284
285 aii = a[i__ + i__ * a_dim1];
286 a[i__ + i__ * a_dim1] = 1.;
287 dlarf_(side, &mi, &ni, &a[i__ + i__ * a_dim1], lda, &tau[i__], &c__[ ic + jc * c_dim1], ldc, &work[1]);
288 a[i__ + i__ * a_dim1] = aii;
289
290 }
291 return 0;
292
293}
double doublereal
Definition FLA_f2c.h:31
int integer
Definition FLA_f2c.h:25
int logical
Definition FLA_f2c.h:36