{
#define A1T(i,j) (dA1T + (i)*ldda1 + (j))
#define A2T(i,j) (dA2T + (i)*ldda2 + (j))
#define L1(i) (dL1 + (i)*lddl1 )
#define L2(i,j) (dL2 + (i)*lddl2i + (j)*lddl2j)
int ip, ii, sb;
cuFloatComplex *dA1T, *dA2T;
char transL;
int lddl2i, lddl2j;
*info = 0;
if (m1 < 0) {
*info = -1;
}
else if (n1 < 0) {
*info = -2;
}
else if (m2 < 0) {
*info = -3;
}
else if (n2 < 0) {
*info = -4;
}
else if (k < 0) {
*info = -5;
}
else if (ib < 0) {
*info = -6;
}
else if (ldda1 <
max(1,m1)) {
*info = -8;
}
else if (ldda2 <
max(1,m2)) {
*info = -10;
}
else if (lddl1 <
max(1,ib)) {
*info = -12;
}
else if (lddl2 <
max(1,m2)) {
*info = -14;
}
if (*info != 0) {
return *info;
}
if ((m1 == 0) || (n1 == 0) || (m2 == 0) || (n2 == 0) || (k == 0) || (ib == 0))
return *info;
if ( (storev == 'C') || (storev == 'c') ) {
lddl2i = 1; lddl2j = lddl2;
} else {
dA1T = dA1;
dA2T = dA2;
lddl2i = lddl2; lddl2j = 1;
}
ip = 0;
for( ii=0; ii<k; ii+=ib )
{
#ifndef NOSWAPBLK
ii+1, ii+ib,
IPIV, 1, m1 );
#else
{
int im;
for(i=0; i<ib; i++) {
if (im != (ii+i)) {
im = im - m1;
assert( (im>=0) && (im<m1) && (im<m2) );
}
ip++;
}
}
#endif
#ifndef WITHOUTTRTRI
n1, sb,
#else
n1, sb,
#endif
n2, m2, sb,
c_neg_one,
A1T(ii, 0), ldda1,
c_one,
A2T(0, 0 ), ldda2 );
}
if ( (storev == 'C') || (storev == 'c') ) {
}
return *info;
}