Я пытаюсь вычислить: C = 1*(A*B') + 0*C
с помощью cblas_dgemm ().Насколько я могу судить, параметры верны.Само сообщение об ошибке не имеет смысла:
"ldb must be >= MAX(K,1): ldb=3 K=3Parameter 11 to routine cblas_dgemm was incorrect"
Но, ldb = k = 3!Вот подробный вывод всех трех матриц и параметров.
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 );
Я уверен, что делаю глупую ошибку, я просто не могу ее обнаружить.Любая помощь будет оценена.
большое спасибо,
Расс