I am trying to compute: C = 1*(A*B') + 0*C
using cblas_dgemm().
As far as I can tell, the parameters are correct.
The error message itself does not make sense:
"ldb must be >= MAX(K,1): ldb=3 K=3Parameter 11 to routine cblas_dgemm was incorrect"
But, ldb = k = 3! Here is the detailed output of all three matrices and the parameters.
A: (m x n: 4x3), lda = 4
B': (n x k: 3x9), lda = 3
C: (m x k, 4x9), ldc = 4
A:
Dense matrix: 0xfe5cf0, nrows = 4, ncols = 3, ColumnMajor = 1
0.1246 0.5407 0.1822
0.1020 0.4639 0.3164
0.3058 0.9872 0.3348
0.8375 0.9343 0.5893
B:
Dense matrix: 0xfe5cd0, nrows = 9, ncols = 3, ColumnMajor = 1
0.4387 0.3447 0.2999
0.1582 0.6505 0.5076
0.1497 0.6515 0.7486
0.3936 0.1065 0.7850
0.7182 0.5477 0.0220
0.3291 0.0453 0.6630
0.4005 0.3075 0.1818
0.4071 0.0083 0.0840
0.1868 0.0998 0.3279
C:
Dense matrix: 0xfe7180, nrows = 4, ncols = 9, ColumnMajor = 1
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Transpose A ta = 111 (CblasNoTrans)
Transpose B tb = 112 (CblasTrans)
m = 4, k = 3, n = 9
lda = 4, ldb = 3, ldc = 4
alpha = 1, beta = 0
CALLING CBLAS_DGEMM:
cblas_dgemm( CblasColMajor, ta, tb, m, n, k, alpha, A->d, lda, B->d, ldb, beta, C->d, ldc );
I am sure I am making a silly mistake, I just can't spot it. Any help will be appreciated.
many thanks,
Russ