11 #include "common_magma.h"
15 #if (defined(PRECISION_s) || defined(PRECISION_d))
16 #define magma_dgemm magmablas_dgemm
17 #define magma_dtrsm magmablas_dtrsm
77 #define inAT(i,j) (dAT + (i)*nb*lddat + (j)*nb)
85 double *dAT, *dAP, *
work;
93 else if (ldda <
max(1,m))
102 if (m == 0 || n == 0)
110 if (nb <= 1 || nb >=
min(m,n)) {
112 work = (
double*)malloc(m * n *
sizeof(
double));
120 maxm = ((m + 31)/32)*32;
121 maxn = ((n + 31)/32)*32;
133 if ((m == n) && (m % 32 == 0) && (ldda%32 == 0)){
148 if (! ((m == n) && (m % 32 == 0) && (ldda%32 == 0)) )
167 c_one,
inAT(i-1,i-1), lddat,
168 inAT(i-1,i+1), lddat );
170 n-(i+1)*nb, m-i*nb, nb,
171 c_neg_one,
inAT(i-1,i+1), lddat,
173 c_one,
inAT(i, i+1), lddat );
179 if ( (*info == 0) && (iinfo > 0) )
180 *info = iinfo + i*nb;
192 c_one,
inAT(i, i ), lddat,
193 inAT(i, i+1), lddat);
196 c_neg_one,
inAT(i, i+1), lddat,
197 inAT(i+1, i ), lddat,
198 c_one,
inAT(i+1, i+1), lddat );
203 c_one,
inAT(i, i ), lddat,
204 inAT(i, i+1), lddat);
206 n-(i+1)*nb, m-(i+1)*nb, nb,
207 c_neg_one,
inAT(i, i+1), lddat,
208 inAT(i+1, i ), lddat,
209 c_one,
inAT(i+1, i+1), lddat );
225 if ( (*info == 0) && (iinfo > 0) )
226 *info = iinfo + s*nb;
235 c_one,
inAT(s,s), lddat,
236 inAT(s,s)+nb0, lddat);
238 if ((m == n) && (m % 32 == 0) && (ldda%32 == 0)){