void col2blk2(const int M, const int N, const TYPE *A, const int lda, TYPE *V, const TYPE *alpha) { int j; const int nNb = ATL_DivByNB(N), jb = N - ATL_MulByNB(nNb); size_t incA = (lda*NB)<<1, incV = (M*NB)<<1; for (j=nNb; j; j--) { col2blk(M, NB, A, lda, V, alpha); A += incA; V += incV; } if (jb) col2blk(M, jb, A, lda, V, alpha); }
void Mjoin(PATL,pcol2blkF) (const int M, const int N, const SCALAR alpha, const TYPE *A, int lda, const int ldainc, TYPE *V) /* * Copies entire MxN matrix to block major format */ { int j, jb; const int incV = ATL_MulByNB(M); const enum PACK_UPLO UA = (ldainc == 1) ? PackUpper : ( (lda == -1) ? PackLower : PackGen ); void (*col2blk)(const int M, const int N, const SCALAR alpha, const TYPE *A, int lda, const int ldainc, TYPE *V); if (ldainc) { if (alpha == ATL_rone) col2blk = Mjoin(PATL,pcol2blk_a1); else col2blk = Mjoin(PATL,pcol2blk_aX); for (j=0; j < N; j += NB) { jb = N-j; jb = Mmin(jb, NB); col2blk(M, jb, alpha, A+MindexP(UA,0,j,lda), Mpld(UA,j,lda), ldainc,V); V += incV; } } else if (alpha == ATL_rone) Mjoin(PATL,col2blk2_a1)(M, N, A, lda, V, alpha); else Mjoin(PATL,col2blk2_aX)(M, N, A, lda, V, alpha); }
void Mjoin(pcol2blkF,_blk) (const int blk, const int M, const int N, const SCALAR alpha, const TYPE *A, int lda, const int ldainc, TYPE *V) /* * Copies entire MxN matrix to block major format */ { int j, jb; const int incV = blk*(M+M); const enum PACK_UPLO UA = (ldainc == 1) ? PackUpper : ( (lda == -1) ? PackLower : PackGen ); void (*col2blk)(const int blk, const int M, const int N, const SCALAR alpha, const TYPE *A, int lda, const int ldainc, TYPE *V); #ifdef Conj_ if (alpha[1] == ATL_rzero) { if (*alpha == ATL_rone) col2blk = Mjoin(Mjoin(PATL,pcol2blkConj_a1),_blk); else col2blk = Mjoin(Mjoin(PATL,pcol2blkConj_aXi0),_blk); } else col2blk = Mjoin(Mjoin(PATL,pcol2blkConj_aX),_blk); #else if (alpha[1] == ATL_rzero) { if (*alpha == ATL_rone) col2blk = Mjoin(Mjoin(PATL,pcol2blk_a1),_blk); else col2blk = Mjoin(Mjoin(PATL,pcol2blk_aXi0),_blk); } else col2blk = Mjoin(Mjoin(PATL,pcol2blk_aX),_blk); #endif for (j=0; j < N; j += blk) { jb = N-j; jb = Mmin(jb, blk); col2blk(blk, M, jb, alpha, A+MindexP(UA,0,j,lda), Mpld(UA,j,lda), ldainc, V); V += incV; } }