20 int M,
int N,
int K,
int L,
26 int M,
int N,
int K,
int L,
175 int M,
int N,
int K,
int L,
232 if ((M == 0) || (N == 0) || (K == 0))
280 side, trans, uplo, M, N, K, L, vi2, vi3,
281 A1, LDA1, A2, LDA2, V, LDV, W, LDW);
285 info = CORE_spamm_a2(
286 side, trans, uplo, M, N, K, L, vi2, vi3,
287 A2, LDA2, V, LDV, W, LDW);
298 int M,
int N,
int K,
int L,
311 static float zone = 1.0;
312 static float zzero = 0.0;
324 LAPACKE_slacpy_work(LAPACK_COL_MAJOR,
327 &A2[K-L], LDA2, W, LDW);
335 (zone), &V[vi2], LDV,
354 (zone), &V[vi3], LDV,
356 (zzero), &W[L], LDW);
360 for(j = 0; j < N; j++) {
368 printf(
"Left Upper/NoTrans & Lower/ConjTrans not implemented yet\n");
377 printf(
"Right Upper/ConjTrans & Lower/NoTrans not implemented yet\n");
390 LAPACKE_slacpy_work(LAPACK_COL_MAJOR,
393 &A2[LDA2*(K-L)], LDA2, W, LDW);
399 (zone), &V[vi2], LDV,
421 (zzero), &W[LDW*L], LDW);
425 for (j = 0; j < N; j++) {
439 CORE_spamm_a2(
int side,
int trans,
int uplo,
440 int M,
int N,
int K,
int L,
452 static float zone = 1.0;
453 static float mzone = -1.0;
460 printf(
"Left Upper/ConjTrans & Lower/NoTrans not implemented yet\n");
484 (zone), &V[vi2], LDV,
488 for(j = 0; j < N; j++) {
492 &A2[LDA2*j+(M-L)], 1);
500 (mzone), &V[vi3], LDV,
521 (mzone), &W[LDW*L], LDW,
541 (mzone), &V[vi2], LDV,
544 for (j = 0; j <
L; j++) {
548 &A2[LDA2*(N-L+j)], 1);
554 printf(
"Right Upper/NoTrans & Lower/ConjTrans not implemented yet\n");
570 int op,
int side,
int storev,
571 int m,
int n,
int k,
int l,
578 sizeof(
int), &op,
VALUE,
581 sizeof(
int), &m,
VALUE,
582 sizeof(
int), &n,
VALUE,
583 sizeof(
int), &k,
VALUE,
584 sizeof(
int), &l,
VALUE,
585 sizeof(
float)*m*k, A1,
INPUT,
586 sizeof(
int), &lda1,
VALUE,
587 sizeof(
float)*k*n, A2,
INPUT,
588 sizeof(
int), &lda2,
VALUE,
589 sizeof(
float)*m*n, V,
INPUT,
590 sizeof(
int), &ldv,
VALUE,
591 sizeof(
float)*m*n, W,
INOUT,
592 sizeof(
int), &ldw,
VALUE,
619 A1, LDA1, A2, LDA2, V, LDV, W, LDW);
621 CORE_spamm( op, side, storev, M, N, K, L, A1, LDA1, A2, LDA2, V, LDV, W, LDW);