14 #include "common_magma.h"
23 #if (defined(PRECISION_s))
28 #define A(i, j) ( a+(j)*lda + (i))
29 #define dA(i, j) (da+(j)*ldda + (i))
34 float *d,
float *e,
float *tau,
153 char uplo_[2] = {
uplo, 0};
170 lquery = lwork == -1;
175 }
else if (lda <
max(1,n)) {
177 }
else if (lwork < nb*n && ! lquery) {
183 ldwork = lddwork = n;
207 float *
dwork = da + (n)*ldda;
221 kk = n - (n - nx + nb - 1) / nb * nb;
223 for (i = n - nb; i >= kk; i -= nb)
234 work, ldwork,
dA(0, 0), ldda, dwork, lddwork);
241 dA(0, i), ldda, dwork,
242 lddwork, d_one,
dA(0, 0), ldda);
246 for (j = i; j < i+nb; ++j) {
273 for (i = 0; i < n-nx; i += nb)
284 &tau[i], work, ldwork,
286 dwork, lddwork, dwork2, n*n);
289 &tau[i], work, ldwork,
299 &dwork[nb], lddwork, d_one,
300 dA(i+nb, i+nb), ldda);
304 for (j = i; j < i+nb; ++j) {
319 &tau[i], work, &lwork, &iinfo);