120 integer a_dim1, a_offset, i__1, i__2, i__3;
123 extern logical lsame_(
char *,
char *);
127 int xerbla_(
char *,
integer *);
130 int sorgql_(
integer *,
integer *,
integer *,
real *,
integer *,
real *,
real *,
integer *,
integer *),
sorgqr_fla(
integer *,
integer *,
integer *,
real *,
integer *,
real *,
real * ,
integer *,
integer *);
156 a_offset = 1 + a_dim1;
162 lquery = *lwork == -1;
163 upper = lsame_(uplo,
"U");
164 if (! upper && ! lsame_(uplo,
"L"))
172 else if (*lda < max(1,*n))
181 if (*lwork < max(i__1,i__2) && ! lquery)
193 nb = ilaenv_(&c__1,
"SORGQL",
" ", &i__1, &i__2, &i__3, &c_n1);
200 nb = ilaenv_(&c__1,
"SORGQR",
" ", &i__1, &i__2, &i__3, &c_n1);
205 lwkopt = max(i__1,i__2) * nb;
206 work[1] = (
real) lwkopt;
211 xerbla_(
"SORGTR", &i__1);
240 a[i__ + j * a_dim1] = a[i__ + (j + 1) * a_dim1];
243 a[*n + j * a_dim1] = 0.f;
251 a[i__ + *n * a_dim1] = 0.f;
254 a[*n + *n * a_dim1] = 1.f;
259 sorgql_(&i__1, &i__2, &i__3, &a[a_offset], lda, &tau[1], &work[1], lwork, &iinfo);
271 a[j * a_dim1 + 1] = 0.f;
277 a[i__ + j * a_dim1] = a[i__ + (j - 1) * a_dim1];
288 a[i__ + a_dim1] = 0.f;
297 sorgqr_fla(&i__1, &i__2, &i__3, &a[(a_dim1 << 1) + 2], lda, &tau[1], &work[1], lwork, &iinfo);
300 work[1] = (
real) lwkopt;
int integer
Definition: FLA_f2c.h:25
int logical
Definition: FLA_f2c.h:36
float real
Definition: FLA_f2c.h:30
int sorgqr_fla(integer *m, integer *n, integer *k, real *a, integer *lda, real *tau, real *work, integer *lwork, integer *info)
Definition: sorgqr.c:123