20 #define A(m, n, i, j, ldt) (BLKADDR(A, PLASMA_Complex64_t, m, n)+((j)*(ldt)+(i)))
39 int X, X1, X2, Y, Y1, Y2;
42 double normtmp, normtmp2;
58 while (m >= A.
mt && n < A.
nt) {
68 while (next_m >= A.
mt && next_n < A.
nt) {
70 next_m = next_m-A.
mt+next_n;
74 X1 = m == 0 ? A.
i %A.
mb : 0;
75 X2 = m == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
79 CORE_zlanhe(
PlasmaMaxNorm, uplo, X,
A(m, n, X1, X1, ldam), ldam, NULL, &normtmp);
86 X1 = m == 0 ? A.
i %A.
mb : 0;
87 X2 = m == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
90 Y1 = n == 0 ? A.
j %A.
nb : 0;
91 Y2 = n == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
95 CORE_zlange(
PlasmaMaxNorm, X, Y,
A(m, n, X1, Y1, ldam), ldam, NULL, &normtmp);
101 X1 = n == 0 ? A.
i %A.
mb : 0;
102 X2 = n == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
105 Y1 = m == 0 ? A.
j %A.
nb : 0;
106 Y2 = m == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
110 CORE_zlange(
PlasmaMaxNorm, X, Y,
A(n, m, X1, Y1, ldan), ldan, NULL, &normtmp);
131 X1 = m == 0 ? A.
i %A.
mb : 0;
132 X2 = m == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
136 memset(lwork, 0, A.
mb*
sizeof(
double));
141 for (n = 0; n < m; n++) {
142 Y1 = n == 0 ? A.
j%A.
nb : 0;
144 CORE_dzasum(
PlasmaRowwise,
PlasmaUpperLower, X, Y,
A(m, n, X1, Y1, ldam), ldam, lwork);
146 CORE_dzasum(
PlasmaRowwise, uplo, X, X,
A(m, m, X1, X1, ldam), ldam, lwork);
148 for (n = m+1; n < A.
mt; n++) {
149 Y = n == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
151 CORE_dzasum(
PlasmaColumnwise,
PlasmaUpperLower, Y, X,
A(n, m, 0, X1, ldan), ldan, lwork);
158 for (n = 0; n < m; n++) {
159 Y1 = n == 0 ? A.
j%A.
nb : 0;
161 CORE_dzasum(
PlasmaColumnwise,
PlasmaUpperLower, Y, X,
A(n, m, Y1, X1, A.
nb), A.
nb, lwork);
163 CORE_dzasum(
PlasmaRowwise, uplo, X, X,
A(m, m, X1, X1, ldam), ldam, lwork);
165 for (n = m+1; n < A.
mt; n++) {
166 Y = n == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
167 CORE_dzasum(
PlasmaRowwise,
PlasmaUpperLower, X, Y,
A(m, n, X1, 0, ldam), ldam, lwork);
171 if ( normtmp > normtmp2 )
198 while( lrank != 0 ) {
225 int X, X1, X2, Y, Y1;
242 szeW = A.
mt*(A.
mt+1)/2;
245 memset(lwork, 0, szeW*
sizeof(
double));
246 for(m = 0; m < A.
mt; m++) {
247 X1 = m == 0 ? A.
i %A.
mb : 0;
248 X2 = m == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
252 plasma->
quark, &task_flags,
254 A(m, m, X1, X1, ldam), ldam, ldam*X,
262 for(n = 0; n < m; n++) {
263 Y1 = n == 0 ? A.
j%A.
nb : 0;
266 plasma->
quark, &task_flags,
268 A(m, n, X1, Y1, ldam), ldam, ldam*Y,
278 for(n = m+1; n < A.
mt; n++) {
279 Y = n == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
281 plasma->
quark, &task_flags,
283 A(m, n, X1, 0, ldam), ldam, ldam*Y,
291 plasma->
quark, &task_flags,
304 memset(lwork, 0, (A.
m+1)*
sizeof(
double));
305 for(m = 0; m < A.
mt; m++) {
306 X1 = m == 0 ? A.
i %A.
mb : 0;
307 X2 = m == A.
mt-1 ? (A.
i+A.
m-1)%A.
mb+1 : A.
mb;
311 plasma->
quark, &task_flags,
313 A(m, m, X1, X1, ldam), ldam, ldam*X,
314 &(lwork[m*A.
mb+1]), A.
mb,
320 for(n = 0; n < m; n++) {
321 Y1 = n == 0 ? A.
j%A.
nb : 0;
324 plasma->
quark, &task_flags,
326 A(m, n, X1, Y1, ldam), ldam, ldam*Y,
327 &(lwork[m*A.
mb+1]), A.
mb,
331 plasma->
quark, &task_flags,
333 A(m, n, X1, Y1, ldam), ldam, ldam*Y,
334 &(lwork[n*A.
mb+1]), A.
mb,
342 for(n = m+1; n < A.
mt; n++) {
343 Y = n == A.
nt-1 ? (A.
j+A.
n-1)%A.
nb+1 : A.
nb;
345 plasma->
quark, &task_flags,
347 A(m, n, X1, 0, ldam), ldam, ldam*Y,
348 &(lwork[m*A.
mb+1]), A.
mb,
352 plasma->
quark, &task_flags,
354 A(m, n, X1, 0, ldam), ldam, ldam*Y,
355 &(lwork[n*A.
mb+1]), A.
mb,
361 plasma->
quark, &task_flags,