123
137
const TYPE *alpha = valpha;
125
#if defined(Transpose_) || defined(ConjTrans_)
131
va = malloc(ATL_Cachelen + (ATL_MulBySize(M*M)));
133
a = ATL_AlignPtr(va);
135
Mjoin(ATL_trcopy,_a1)(M, ATL_rone, A, lda, a);
137
ATL_trcopy(M, A, lda, a);
139
Mjoin(Mjoin(PATL,trsmKL),ATLPt)(M, N, *alpha, a, M, C, ldc);
142
else Mjoin(PATL,reftrsm)(AtlasLeft, Uplo_, Trans_, Unit_, M, N, *alpha,
145
Mjoin(Mjoin(PATL,trsmKL),ATLP)(M, N, *alpha, A, lda, C, ldc);
140
int Mjoin(PATL,trsmKL_rk4)(enum ATLAS_SIDE Side, enum ATLAS_UPLO Uplo,
141
enum ATLAS_TRANS TA, enum ATLAS_DIAG Diag, ATL_CINT M, ATL_CINT N,
142
const SCALAR alpha, const TYPE *A, ATL_CINT lda, TYPE *B, ATL_CINT ldb);
143
if (N >= 8 && M >= 8) /* must get reuse of A, and call rk4 */
144
ierr = Mjoin(PATL,trsmKL_rk4)(AtlasLeft, ATL_UPLO, ATL_TRANS, ATL_UNIT,
145
M, N, *alpha, A, lda, C, ldc);
147
Mjoin(PATL,reftrsm)(AtlasLeft, ATL_UPLO, ATL_TRANS, ATL_UNIT,
148
M, N, *alpha, A, lda, C, ldc);
148
if (N > (M<<2) && M <= 4)
149
Mjoin(PATL,CtrsmKL)(Uplo_, Trans_, Unit_, M, N, valpha, A, lda, C, ldc);
151
Mjoin(PATL,reftrsm)(AtlasLeft, Uplo_, Trans_, Unit_, M, N, valpha,
151
int Mjoin(PATL,trsmKL_rk2)(enum ATLAS_SIDE Side, enum ATLAS_UPLO Uplo,
152
enum ATLAS_TRANS TA, enum ATLAS_DIAG Diag, ATL_CINT M, ATL_CINT N,
153
const SCALAR alpha, const TYPE *A, ATL_CINT lda, TYPE *B, ATL_CINT ldb);
154
if (N >= 8 && M >= 8) /* must get reuse of A, and call rk2 */
155
ierr = Mjoin(PATL,trsmKL_rk2)(AtlasLeft, ATL_UPLO, ATL_TRANS, ATL_UNIT,
156
M, N, valpha, A, lda, C, ldc);
158
Mjoin(PATL,reftrsm)(AtlasLeft, ATL_UPLO, ATL_TRANS, ATL_UNIT,
159
M, N, valpha, A, lda, C, ldc);