12 void LACPY(
const char *UPLO,
33 if (B + m-1 + ldb*(n-1) < A || A + m-1 + lda*(n-1) < B)
35 LACPY(UPLO, M, N, A, LDA, B, LDB);
39 TYPE *tmp = malloc(
sizeof(*A) * m * n);
43 const char func[] =
FUNC;
44 xerbla_(func, &info,
sizeof func);
48 LACPY(UPLO, M, N, A, LDA, tmp, &m);
49 LACPY(UPLO, M, N, tmp, &m, B, LDB);
56 switch (toupper(*UPLO))
62 for (i=0; i<j && i<m; i++)
63 B[i+ldb*j] = A[i+lda*j];
68 for (i=j<m ? j : m; --i>=0;)
69 B[i+ldb*j] = A[i+lda*j];
78 B[i+ldb*j] = A[i+lda*j];
82 for (j=m<n ? m : n; --j>=0;)
84 B[i+ldb*j] = A[i+lda*j];
93 B[i+ldb*j] = A[i+lda*j];
99 B[i+ldb*j] = A[i+lda*j];