11 #include "common_magma.h"
16 cuFloatComplex *tau, cuFloatComplex *
dT,
76 #define a_ref(i,j) ( a + (j)*lda + (i))
77 #define da_ref(i,j) (da + (j)*ldda + (i))
78 #define t_ref(a_1) (dT+(a_1)*nb)
85 static cudaStream_t stream;
90 }
else if ((n < 0) || (n > m)) {
92 }
else if ((k < 0) || (k > n)) {
94 }
else if (lda <
max(1,m)) {
106 ldda = ((m+31)/32)*32;
107 lddwork = ((lddwork+31)/32)*32;
112 dwork = da + (n)*ldda;
116 work = (cuFloatComplex *)malloc(lwork*
sizeof(cuFloatComplex));
125 if ( (nb > 1) && (nb < k) )
129 ki = (k - nb - 1) / nb * nb;
130 kk =
min(k, ki + nb);
146 &tau[kk], work, &lwork, &iinfo);
156 for (i = ki; i >= 0; i-=nb)
172 da_ref(i, i+ib), ldda, dwork, lddwork);
178 &tau[i], work, &lwork, &iinfo);
181 da_ref(i,i), ldda, stream );